티스토리 뷰
dll 프로젝트에서는
extern "C" __declspec(dllexport) int 함수명(int a, int b)
{
return a * b;
}
dll 사용 프로젝트
1. 암시적링크
DLL, Lib 파일은 프로젝트 폴더에 복사한다.
Lib 파일 필요하고 프로잭트 속성에서 링크/입력/추가종속성에 lib 파일명을 추가해야 한다.
extern "C" __declspec(dllimport) int 함수명(int, int);
int nResult = 함수명(20, 5);
2. 명시적링크
DLL 파일만 프로젝트 폴더에 복사한다.
LoadLibrary(). GetProcAddress(), FreeLibrary() 로 호출한다.
HINSTANCE hInstDll = LoadLibrary(TEXT("MultipleDll.dll"));
int (*pMultiple)(int, int) = (int(*)(int, int))GetProcAddress(hInstDll, "함수명"); // Dll 파일에서 함수 주소를 얻는다.
int nResult = (*pMultiple)(20, 5);
FreeLibrary(hInstDll);
예외처리
__try
{
// 예외 가능성 있는 코드
}
__except(표현식)
{
// 예외 발생시 처리영역
}
__finally
{
// __try 문 종료 시 처리 영역
}