C++ 5

[Visual Studio] c#에서 c++ dll 디버깅 하기

1. 솔루션 내에 c++ 프로젝트와 c#프로젝트를 같이 둔다.(C++이 있는 프로젝트에 C#을 포함시키는 쪽이 더 편하다.)(반대로 하면 C++ 프로젝트 세팅을 다시 해줘야한다.) 2. 종속성 설정솔루션 -> 속성 -> 프로젝트 종속성에서 c# 프로젝트를 c++ 프로젝트에 종속시킨다.  3. 호환성 모드 설정도구 -> 옵션 -> 디버깅 -> 일반에서관리되는 호환성 모드 사용 체크   4. C# 프로젝트 -> 속성에서 네이티브 코드 디버깅 사용 체크   5. 디버깅 모드로 실행 후 C++프로젝트에서 디버깅이 되는지 확인 ----출처https://toyship.tistory.com/140 options" data-og-host="toyship.tistory.com" data-og-source-url="htt..

객체 지향 개발 5대 원칙

위키 요약 두 문자 약어 개념 S SRP 단일 책임 원칙 (Single responsibility principle)한 클래스는 하나의 책임만 가져야 한다. O OCP 개방-폐쇄 원칙 (Open/closed principle)“소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.” L LSP 리스코프 치환 원칙 (Liskov substitution principle)“프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라. I ISP 인터페이스 분리 원칙 (Interface segregation principle)“특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.” D DIP 의존관계 역..

프로그래밍/CPP 2024.01.04

[언리얼] 블루프린트와 C++의 차이점

블루 프린트 - 언리얼용 GUI에서 기능을 빠르게 변경 가능하다. - 초보자가 쉽게 다루기 편하다. - 내장 툴이 탑재되어 있어 편하다. - 언리얼 전용이라 언리얼에 맞게 변형할 필요가 없다. - 디자이너나 기획자가 쓰기 좋다. C++ - 간결하다. - 많은 사람이 쓰는 스탠다드 언어라 자료가 많다. - 빠른 스피드 - 블루프린트보다 언리얼 엔진에 접근할 수 있는 부분이 더 많다. - 대형 프로젝트에 알맞다. 하나만 선택에서 쓰는게 아닌 상황에 따라 둘을 적절히 잘 조합해서 사용하는게 좋다.

언리얼 2024.01.02

[C++ STL] 스마트 포인터

1. 스마트 포인터의 정의 C++는 C#과 Java와 다르게 힙영역에 동작 할당된 개체를 프로그래머가 직접 해제 해야한다. 이때 자동으로 해제와 동시에 해제된 참조 포인터를 nullptr로 변환해준다. 스마트 포인터는 운영체제 비트에 따라 4바이트 혹은 8바이트로 원시 포인터의 크기와 동일하다. 그리고 스마트 포인터가 데이터를 액섹스하는 속도는 원시 포인터와 크게 다르지 않다. 2. 스마트 포인터가 필요한 이유 가장 큰 이유는 "메모리 누수" 방지 차원에서 사용된다. 메모리 누수가 일어나면 할당 가능한 힙 영역이 줄어들게 되고 나중에는 할당할 공간이 모자르게 되면서 프로그램이 예기치 못하게 종료되는 상황이 발생한다. 스마트 포인터는 스택 메모리에 만들어지기 때문에 코드블럭을 나가게 되면 자동으로 스마트 ..

프로그래밍/CPP 2023.12.22