C/C++/MFC
DLL 간단한 MFC 용 라이브러리(lib,dll)를 만들어 사용해 보자.
2008.07.09 15:35
간단한 MFC 용 라이브러리(lib,dll)를 만들어 사용해 보자.
사용 툴 : VS2003, VC7.0
프로젝트명 : WATCalDll
내용 : plus 라는 함수명을 가진 라이브러리는 만들고,
그 라이브러리는 다른 프로그램에서 사용해 본다.
소스 : WATCalDll_src.zip
실행 파일 : WATCalDll.zip
Library 만들기
[새 프로젝트] => [Visual C++ 프로젝트] => [MFC] => [MFC 확장 DLL]
로 새 프로젝트 생성한다.
몇 개의 파일이 생성되는데, 그중에서 2군데만 수정하면 된다.
- WATCalDll.cpp 파일에
- AFX_API_EXPORT int plus(int d1,int d2){
return d1+d2;
}
-
WATCalDll.def 파일에
plus 한줄을 추가한다.(plus 함수를 외부에서 사용할 수 있게 선언해 주는 것이다.)
- ; WATCalDll.def : DLL에 대한 모듈 매개 변수를 정의합니다.
LIBRARY "WATCalDll"
EXPORTS
HttpExtensionProc
GetExtensionVersion
TerminateExtension
plus
Library 사용하기
FormView 나 Dialog 를 사용하여 간단한 테스트를 할수 있다.
소스는 아래와 같다.
- void CWATCalAppView::OnBnClickedButton1()
{
HINSTANCE hDll;
hDll=LoadLibrary("..\\WATCalDll\\debug\\WATCalDll.dll"); // (개발중인) 라이브러리 호출
if(!hDll)
{
// 혹시 개발중인 라이브러리가 없을 경우 같은 폴더에서 읽어 온다.
hDll=LoadLibrary("WATCalDll.dll");
}
typedef int (*WatLibPlusFunc)(int d1,int d2);
WatLibPlusFunc watLibPlus;
watLibPlus=(WatLibPlusFunc)GetProcAddress(hDll,"plus");
int aa =watLibPlus(11,33);
CString strTemp;
strTemp.Format("sum = %d",aa);
MessageBox(strTemp);
FreeLibrary(hDll);
}
<결과 창>
관련 문서가 검색되었습니다.
- [2013/11/26] MSVCR110.dll , MSVCR100.dll오류 (17699) *2
- [2012/11/13] ZEO 모듈이란? (6394)
- [2010/12/29] 03_VC6.0 테트리스 만들기 - 벽돌(Shape)만들기 (27847) *2
- [2010/10/04] C#, DLL 만들어 using으로 사용하기 #2 (18419)
- [2010/10/04] C#, DLL 만들어 using으로 사용하기 #1 (19078)
- [2010/08/25] 클래스를 배열로 묶어 사용하기 (19868)
- [2010/01/30] BUTTON 버튼색 변경하기 (37690)
- [2010/01/23] 기본적인 Button 사용하기 (13574)
- [2009/06/14] OnKeyDown 에서 Ctrl, Shift, Alt 눌러졌는지 확인하는 방법 (24221)
- [2009/02/03] WM_DEVICECHANGE in MFC (17873)