반응형
MFC를 디버그 모드로 컴파일 하거나 릴리즈 모드로 컴파일 할때는 서로 다른 라이브러리를 참조한다.
릴리즈용 라이브러리는 그냥 평범한 이름이지만
디버그용 라이브러리는 보통 릴리즈용 라이브러리 파일의 이름 뒤에 d 가 붙은 이름으로 되어 있다.
아래 그림과 같이 디버그로 컴파일 했을때 릴리즈로 컴파일했을때는 잘 되었는데 또는 디버그로 컴파일 했을때 잘 되었는데.. 반대인 경우로 컴파일 하면 에러가 나는 경우를 볼 수 있다.
에러 내용들은 아마도 이런 내용들과 유사 할 거다.
해결방법은 컴파일될때 잘못 참조 되고 있는 라이브러리를 정상적으로 참조 될 수 있도록 라이브러리를 바꿔 주면 된다.
우선 아래의 그림과 같이 프로젝트 오른쪽 키를 눌러 속성을 클릭한다.
" 구성(C): " 이부분을 컴파일 하면 에러나는 모드 "Debug" 또는 "Relese"로 바꿔주고
"구성속성 > C/C++ > 코드 생성" 에서 "런타임 라이브러리"가
Debug 모드일때
다중 스레드 (/MT) 로 되어 있다면 -> 다중 스레드 디버그 (/MTd) 또는
다중 스레드 DLL (/MD) 로 되어 있다면 -> 다중 스레드 디버그 DLL (/MDd) 로 바꿔주고
Relese 모드일때는 위와 반대로
다중 스레드 디버그 (/MTd) 로 되어 있다면 -> 다중 스레드 (/MT) 또는
다중 스레드 디버그 DLL (/MDd) 로 되어 있다면 -> 다중 스레드 DLL (/MD) 로 바꿔주고
적용 하여 컴파일 하면 해결된다.
반응형
'Windows > MFC' 카테고리의 다른 글
MFC 기반 프로그램 배포 (dll)문제 해결 (0) | 2013.09.06 |
---|---|
02. MFC 프로그래밍의 기초 (0) | 2013.06.19 |
01. 윈도우 프로그래밍의 이해 (0) | 2013.06.18 |