一、構建DLL路徑
char szTmp[_MAX_PATH]; char* szPath = getcwd(szTmp, _MAX_PATH);//獲取當前工作目錄
//構建dll路徑
strcat(szTmp, DLLNAME);
TCHAR wLocation[_MAX_PATH] = { 0 };
MultiByteToWideChar(0, 0, szTmp, _MAX_PATH, wLocation, _MAX_PATH * 2);
二、加載DLL
//dll資源加載 HINSTANCE hActive = LoadLibrary(wLocation);
三、調用DLL中函數
typedef void (_stdcall *pfnGetStatus)(long*); bool CLASSNAME::IsActive() { long lStatus = 0; pfnGetStatus Func = (pfnGetStatus)GetProcAddress(hActive, "GetStatus"); if(!Func) { // Error; } else { Func(&lStatus); } return lStatus; }
四、釋放DLL
if(hActive != NULL) { FreeLibrary(hActive); }