본문 바로가기
VisualStudio.C++.C#

MFC Extension DLL 만들기. ChartDirectorViewer

by i.got.it 2017. 3. 18.
 

개요

 
 
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
 
 
 

 

 

 

MFC 확장 DLL 기본 지식 

- 여러 DLL 들의 리소스 충돌 문제 해결 방법등

 

 

MFC. Extension DLL. 확장 DLL

MFC extension dll-  // dllmain.cpp : Defines the initialization routines for the DLL.static AFX_EXTENSION_MODULE CLibCyMetaTraderDLL = { false, nullptr };extern "C" int APIENTRYDllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved){ // Remove th

igotit.tistory.com

 

 

 

 

 

 


첫 등록 : 2017.03.18

최종 수정 : 2024.09.05

단축 주소 : https://igotit.tistory.com/1259


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5