VisualStudio.C++.C#2017. 3. 18. 13:24
 

개요

 

Visual Studio 2015 MFC extension dll 만들기.

본 글에서 예로 사용되는 "확장DLL 프로젝트" 이름 : ChartDirectorViewer

기능 : Chart Director for C++( http://igotit.tistory.com/553 ) 에서 제공하는 2개의 소스 파일 ChartViewer.cpp, ChartViewer.h 을 확장 DLL ChartDirViewer 로 만들어서 응용프로그램에서 활용시 소스코드(ChartViewer.cpp, ChartViewer.h) 포함하지 않고 ChartDirectorViewer.dll 을 로딩하여 활용가능하게 함.

MS 제공정보 : MFC extension dll 

 


 


 

상세. MFC Extension DLL 만들기.

 

단계1. 확장DLL 프로젝트  ChartDirectorViewer 생성.

Visual Studio 실행하여 File -> New -> Project.., 클릭하여

 왼쪽 Template -> Visual C++ -> MFC 선택하고 오른쪽 MFC DLL 선택하고 프로젝트명 기록하고 버튼 OK클릭.


진행중 나오는 아래 창 에서 MFC extension DLL 선택.


상기 대화상자의 버튼 Finish 클릭하면 확장DLL 기본 소스코드 자동 생성된다. 아래화면.





단계2. 프로젝트에 소스코드 ChartViewer.cpp, ChartViewer.h 추가.


 http://igotit.tistory.com/553 의 2번 박스글에서의 설명과 동일함. 프로젝트에 포함시키면 아래 그림 오른쪽 처럼 클래스 들이 추가된것이 보인다.



단계3. 외부노출 클래스 설정. 

상기 클래스 중에서 CChartViewer 를 노출시키기 위해선 해당 Class 선언부에 AFX_EXT_CLASS 추가 하면된다. 즉, 아래 그림 붉은 박스처럼 구문 추가한다. 이제 본 DLL 이용하면 다른 응용프로그램에서 클래스 CChartViewer  사용가능 상태 된 것.


단계4. 빌드 


프로젝트 빌드하면 확장DLL ChartDirectorViewer 만들기 끝.
빌드 성공시 출력폴더에 dll 과 lib 파일이 만들어진 것을 볼 수 있다.

 


 


 

다듬기. DLL 배포용 헤더파일 ChartDirectorViewer.h 추가.

 
 
상기 박스글에서 처럼 만들어진 DLL 을 다른 응용프로그램에서 사용하기 위해서는 외부 노출 클래스 선언되어있는 헤더 파일인 chartviewer.h 를 배포해야하는데, 통상 사용자들은 이런걸 헷갈려 한다. 즉, DLL 이름이 ChartDirectorViewer 이면 헤더파일도 ChartDirectorViewer 라는 이름이 헤더파일에 포함되어있길 기대한다. 

또한, chartviewer.h 에는 사용자에게 불필요한  선언들도 있어 지저분하기도 하다.

따라서, 우리의 프로젝트에서 ChartDirectorViewer.h 를 수동 추가하고 , 원래 chartviewer.h 에 있던 외부 노출 클래스 선언구문을  ChartDirectorViewer.h 에서 이뤄지게 한다. 

이제, DLL 배포시 아래 3개 파일이 배포되면 된다.

1. ChartDirectorViewer.dll
2. ChartDirectorViewer.lib
3. ChartDirectorViewer.h


 


 




///1259.

Posted by 리치굿맨

댓글을 달아 주세요