개요 | |
VC++ 에서 MFC Regular DLL 만드는 법.
사용된 IDE : Visual Studio 2015
DLL 프로젝트 명칭 : CyFinAPI
- Solution 명칭도 CyFinAPI 로 함.
과정요약.
1. Visual Studio 의 "새 프로젝트" (메뉴 :파일->새로만들기->프로젝트.. 클릭) 에서 MFC DLL 선택하고 프로젝트이름, 경로, 솔루션 이름 지정하고 확인버튼클릭.
2. 이후 DLL 마법사 설정선택하여 기본 DLL프로젝트 자동생성.
3. DLL 을 사용할 프로젝트에서 본 DLL 을 활용할때 필요한 헤더파일 생성해두기.
| |
|
상세과정 . MFC Regular DLL 만들기. | |
1. 아래 그림에 Visual Studio 의 "새 프로젝트" (메뉴 :파일->새로만들기->프로젝트.. 클릭) 창이 보인다.
MFC DLL 선택하고 프로젝트이름, 경로, 솔루션 이름 지정하고 확인버튼클릭.
위 그림의 확인 버튼 클릭하면 MFC DLL 마법사 창이 보인다. 다음 클릭.
응용프로그램 설정 창이 나온다. 본 예에서는 아래 붉박 부분만 체크하고 마침 버튼 클릭한다.
자동으로 기본 코드까지는 만들어준다. - 아래 그림. 왼쪽의 솔루션 탐색기에 보면 .cpp, .h 리소스파알들이 생성된것을 볼 수 있다.
여기까지가 MFC Regular DLL 생성과정 기본. 이후 본인이 원하는 코드 작업 진행하면됨. 주의 사항 : .cpp 파일의 주석에 설명되어 있듯이 (위 그림 오른쪽의 붉은줄) DLL (프로젝트 옵션에서 MFC DLL 을 동적 링크하는것으로 옵션 설정한 경우)에서 외부로 노출시키는 함수의 첫부분에는 항상 아래 코드를 추가할것. AFX_MANAGE_STATE(AfxGetStaticModuleState()); | |
|
DLL 을 활용할 곳에서 인클루드 시킬 헤더파일 생성. | |
DLL은 다른 프로그램에서 활용하기 위함이며 이를 위해서는 DLL 에서 노출해준 함수 등의 선언이 있는 헤더파일을 제공해줘야 한다.
DLL 활용하는 법 상세보기 -> http://igotit.tistory.com/471
이런 헤더파일은 프로젝트에 포함될 필요는 없지만, 관리의 편의상 프로젝트의 헤더파일에 포함시켜두고 바로 접근할 수 있도록 한다.
추가할 헤더파일명 : CyFinAPI_DEF.h ( 이름은 임의로 정하면 되나 DLL의 이름과 유사하게 해야 활용하는 측에서 혼선이 줄어든다.)
헤더파일 추가방법.
솔루션 탐색기의 헤더파일 을 마우스 우클릭하여 새항목.. 클릭한다.
새항목 추가창에서 헤더파일 선택하고 이름에 CyFinAPI_DEF.h 기록하고 추가버튼 클릭. | |
|
DLL에 외부 노출함수 만들기 | |
DLL 은 다른 앱 코드 개발시 활용가능한 함수, 리소스를 제공할 목적으로 만들어진 것이므로 export 시키는 방법을 알아야 한다. DLL 에서 외부에 노출시킬 함수 정의 앞에 아래 구문을 추가하면 외부에 제공하는 함수로 설정된다. extern "C" __declspec(dllexport) 즉, 함수정의 void test1(void), void test2(void) 이라는 함수가 있는데, 이 함수들을 외부에서 호출 가능하게 하려면 아래 붉박처럼 정의한다. 외부노출함수정의하는 소스파일은 DLL 기본 생성된 CyFinAPI.c의 가장 아래 부분에 추가한다.
한편, 위와 같이 외부노출함수가 정의된 경우 DLL 활용하는 앱에서 인클루트 시킬 CyFinAPI_DEF.h 파일에 아래 처럼 선언해둔다. dllimport 임에 주의.
| |
|
DLL 활용하는 앱 프로젝트에 필요한 3개 파일들. | |
앱개발시 DLL 을 활용 하기 위해서는 DLL 관련 3개의 파일(.DLL, .LIB, .h) 이 필요하다. ( implicit linking 시 요구되는 것이며 explicit linking 시에는 dll 파일만 있어도 된다. implicit link 방법 보기 -> http://igotit.tistory.com/471 ) 본 프로젝트의 예에서는 아래 3개의 파일을 DLL 활용하려는 앱 프로젝트 폴더에 배치해야 한다. 1. CyFinAPI.dll 2. CyFinAPI.lib 3. CyFinAPI_DEF.h
| |
|
본 글이 포함된 상위 정리 장소.
Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11
|
첫글등록 : 2015년 12월 10일.
최종수정 :
본글단축주소 : https://igotit.tistory.com/476
'VisualStudio.C++.C#' 카테고리의 다른 글
VC++ 프로젝트에 MFC 대화상자 추가하기. 예: CyFinAPI DLL 프로젝트에 CDlgMain 추가. (0) | 2015.12.11 |
---|---|
Visual Studio 솔루션에 새프로젝트 추가하기. 예:솔루션 CyFinAPI에 CyFinAPI_SelfUpdate C# winform 프로젝트 추가. (0) | 2015.12.10 |
Visual Studio Community 2015 설치, 무료. (0) | 2015.11.28 |
Visual Studio Community 2013 설치. 무료임. (0) | 2015.01.07 |
Visual Studio .net 프레임웍 프로젝트에서 64비트, 32비트, Any CPU 플랫폼 선택하여 빌드 가능하게 설정하기. (0) | 2014.10.26 |
댓글