DLL 만들때, 정적 라이브러리에서 MFC 사용 !!!(펌)
2015. 9. 24. 17:02ㆍIT-개발/winapi 및 MFC
반응형
(출처 : http://six605.tistory.com/466)
MFC 응용프로그램 배포 시, MFC 사용 방법을 프로젝트 설정에서 설정해준다.
공유 DLL에서 MFC 사용 : 응용프로그램 배포 시 mfc**.dll 파일을 함께 배포.
정적 DLL에서 MFC 사용 : 응용프로그램의 실행 파일에 mfc**.dll 이 포함되어 배포되기 때문에 응용프로그램만 배포.
배포 시 응용프로그램만 배포하는게 관리하기도 편하고 오작동의 가능성도 적기 때문에 "정적 DLL 에서 MFC 사용" 으로 프로젝트를 설정하여 개발하게 된다.
응용프로그램이 DLL 일 경우 위와 같이 설정하면 컴파일 시 다음과 같은 오류 메시지가 발생한다.
fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
다음과 같이 설정해 주자.
1. 전처리기 정의
C/C++ → 전처리기 → 전처리기 정의
"_AFXDLL" 추가
2. 코드 생성
C/C++ → 코드 생성 → 런타임 라이브러리
Debug 모드일 경우 : "다중 스레드 디버드 DLL(/MDd)" 설정
Release 모드일 경우 : "다중 스레드 DLL(/MD)" 설정
실제 혼자 해결해 보려고 바둥대다 보니~ 시간 되게 많이 먹히게 된다. ㅠㅠ
이런 좋은 글이 있을 줄이야~ 구글링은 능력이다~ ㅠㅠ
핵심... DLL에서 MFC 정적으로 link 시켜서 사용하려면~ _
#define _AFXDLL // <= 요걸 해줘야 한다는 거~~~, 난 stdafx.h 파일 제일 위쪽에 이거 넣어 줬더니 되네요~
'IT-개발 > winapi 및 MFC' 카테고리의 다른 글
CStatic ...이리저리사용하기 (1) (0) | 2015.10.02 |
---|---|
OutputDebugString - 잘쓰기 (펌) (0) | 2015.09.30 |
특정 폴더를 한번에 삭제하기(폴더안 파일까지 포함) [펌] (0) | 2015.09.18 |
CListCtrl 포커스 해제시 selection color 유지하기 (0) | 2015.08.21 |
잘못된 인수가 발견되었습니다(An invalid argument encountered) (0) | 2015.08.18 |