개발/C++, MFC 6

VC++ 6.0, dll 디버깅 포함시키기(dependencies)

dll 소스를 가지고 있을 때, 같이 디버깅을 걸고 싶을 때가 있다. 온전한 프로젝트라면 Insert Project into Workspace를 해서 볼 수도 있을 것이고 Insert Project into Workspace 했다면 Project - Dependencies... 메뉴에서 프로젝트 종속시킨다. 또는 단편적인 해당 dll의 .cpp 파일만 있어도 디버깅을 걸어볼 순 있다. 우선 dll이 사용되는 시점에 디버깅 포인트를 걸어준다. 그리고 Debug - Modules... 메뉴에 들어가면 현재 실행되는 모듈들을 확인할 수 있다. 해당 dll 사용하는 시점이라면 우리가 보고 싶어하는 dll도 Module 탭에서 찾을 수 있을 것이다. 해당 dll이 보인다면 프로세스가 활성화 된 것이다. 그렇다면 ..

개발/C++, MFC 2017.07.19

C++ 키워드와 예약어

개발팀 회의 중에 키워드와 예약어에 대한 얘기가 나왔는데, 정의, 개념이 헷갈렸습니다. 비슷한 것 같기도 하면서도 달랐던 것 같아서 찾아서 정리해보았습니다. 내용은 C++ 기초 플러스 부록을 참고하여 작성하였습니다. 예약어(키워드를 포함하는 개념) 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어들이다. 예를 들어 C에서 return은 변수명이나 함수명으로 사용할 수 없다. 그런 단어들은 키워드이다. 때로는 아직 구현되지 않은 명령들을 위하여 예약어를 지정하기도 한다. 예를 들어 자바에는 const와 goto와 같은 예약어가 있는데 이것은 아직 사용되지 않지만 예약어이므로 식별자로 사용될 수 없다. 이것은 나중에 구현될 경우에 기존의 원시 코드를 그대로 ..

개발/C++, MFC 2017.06.29

DLL(Dynamic Link Library) 의 개요 및 프로그램과 연결 예제

안녕하세요. 공유민입니다.요즘 DLL에 관해 공부 중인데 정리한 것을 포스팅해봅니다. 틀린 점이 있다면 댓글로 피드백 주세요. 동적 링크 라이브러리(Dynamic Link Library) 실행 파일에 직접 덧붙여지지 않고, DLL 파일에 독립적으로 존재하다가 프로그램이 실행될 때 동적으로 링크되어 사용됩니다. 장점㉠ 메모리와 하드 디스크를 절약할 수 있습니다. 여러 프로그램에서 공통으로 사용하는 경우, 하나의 DLL을 공유하면서 동적으로 링크되어 사용하기 때문입니다.㉡ 프로그램 실행 속도가 빨라질 수 있습니다. 실행 프로그램이 작아지고 로드만 하면 되기 때문입니다.㉢ 프로그램이 모듈화 됩니다. DLL 단위로 모듈화가 되기 때문에 각각을 독립적으로 개발할 수 있습니다. 업그레이드 시에도 해당 부분에 DLL..

개발/C++, MFC 2016.11.16

Include 경로 추가하기 - Visual Studio 6.0/2005

안녕하세요. 공유민입니다. 코딩하다 보면 헤더 파일이 추가되지 않아서 no such file or directory라는 오류를 만날 때가 있습니다. 그럴 땐 보통 헤더 파일이 있는 디렉터리(경로)가 추가되지 않아서 그런 경우가 많습니다. 항상 막상 추가하려면 하는 방법을 까먹어서 정리합니다. Visual Studio 6.0에 경로 추가 Visual Studio 6.0에 경로 추가는 다른 Workspace에서도 추가되기 때문에 고정적으로 쓰는 경로일 때 사용합니다. Tools - Options... 을 선택합니다. 그 후에 Directories 탭을 선택 후 New 버튼을 선택 후 ...버튼을 누릅니다. include에 포함할 드라이브, 폴더를 선택하신 후 OK 하시면 추가됩니다. Visual Studio..

개발/C++, MFC 2016.11.16

MFC 상태 정보 관리 및 모듈, 리소스 핸들 얻어오기

안녕하세요. 공유민입니다. 오늘은 MFC 상태 정보 관리 및 모듈, 리소스 핸들에 대해 공부했던 것을 정리하려고 합니다. 여기서 모듈이라는 단어를 정리하자면 하나의 소스 파일일 수도 있고, 실행 파일 단위일 수도 있습니다. MFC는 자체적으로 구현한 TLS(Thread Local Stroage), 즉 MFC TLS를 사용하여 MFC의 상태 정보를 관리한다. MFC가 관리하는 상태 정보는 3가지가 있다. - 스레드 정보 : _AFX_THREAD_STATE - 모듈 정보 : AFX_MODULE_STATE - 모듈 스레드 정보 : AFX_MODULE_THREAD_STATE _AFX_THREAD_STATE, AFX_MODULE_STATE, AFX_MODULE_THREAD_STATE는 MFC 상태 정보 관리를 위..

개발/C++, MFC 2016.11.15