ㆍ언어대상 : C++ ㆍ작성자 : 김민석
Compile Time Linking
[제작]
#ifdef __cplusplus // C++ 컴파일러가 실행중이면 extern "C" 키워드를 사용한다.
extern "C" {
#endif
// DLL이 익스포트하는 함수를 정의한다.
__declspec(dllexport) void* MyExportFunction()
{
return new CMyCalculatorObject;
}
// 익스포트 함수를 더 추가하려면 이 부분에서 정의하면 된다.
#ifdef __cplusplus
}
#endif
**결과물은 dll, lib
extern "C" {
#endif
// DLL이 익스포트하는 함수를 정의한다.
__declspec(dllexport) void* MyExportFunction()
{
return new CMyCalculatorObject;
}
// 익스포트 함수를 더 추가하려면 이 부분에서 정의하면 된다.
#ifdef __cplusplus
}
#endif
**결과물은 dll, lib
[사용]
- .h include
- .lib Linking
**선언
__declspec(dllimport) void* MyExportFunction();
**사용은 포인터 받아서 사용
Run-Time Dynamic Linking
[사용]
- .h include
- .dll 복사
* LoadLibrary,GetProcAddress,
**선언
typedef void*(*pDllFnc)();
**사용
pDllFnc pFnc;
CMyCalculatorObject *pObject;
CMyCalculatorObject *pObject;
HINSTANCE m_h = LoadLibrary("DLL01.dll");
if (m_h!=NULL){
pFnc = (pDllFnc)GetProcAddress(m_h,"MyExportFunction");
}else{
AfxMessageBox("dll링크실패");
return;
}
pObject = (CMyCalculatorObject*)pFnc();
delete pObject;
FreeLibrary(m_h);
if (m_h!=NULL){
pFnc = (pDllFnc)GetProcAddress(m_h,"MyExportFunction");
}else{
AfxMessageBox("dll링크실패");
return;
}
pObject = (CMyCalculatorObject*)pFnc();
delete pObject;
FreeLibrary(m_h);
해당 내용은 (주)데브존의 웹봇이 자동으로 저희 홈페이지와 API로 동기화한 내용입니다. 자세한 내용은 홈페이지 http://www.devzone.co.kr 또는 모바일 폰에서 http://devzone.co.kr을 접속 하여 확인해 보시기 비랍니다.
- 대표 전화 : 02) 2061 - 0753 - Fax : 02) 2061 - 0759 - Skype : devzone24
- 주소 : 서울특별시 양천구 목1동 923-14. 현대드림타워 1024호
- 기술 문의: 02) 2061-1259 김민석 기술이사
- 대표 전화 : 02) 2061 - 0753 - Fax : 02) 2061 - 0759 - Skype : devzone24
- 주소 : 서울특별시 양천구 목1동 923-14. 현대드림타워 1024호
- 기술 문의: 02) 2061-1259 김민석 기술이사
댓글 없음:
댓글 쓰기