DLL导入
DLL导入方式
一、__declspec(dllimport)与__declspec(dllexport)相呼应
二、LoadLibrary、GetProcAddress方式
方式一、__declspec(dllimport)
1、此方式与__declspec(dllexport)相对应,一般有如下定义:
#ifdef DLLWRAP_EXPORTS #define DLLWRAP_API __declspec(dllexport) #else #define DLLWRAP_API __declspec(dllimport) #endif
因此只要不定义DLLWRAP_EXPORTS即可
2、把生成dll对应的lib文件作为依赖库,exe运行时将自动链接dll。
方式二、LoadLibrary、GetProcAddress
1、LoadLibrary(dllName)
2、从dll获取函数指针,然后调用。
typedef void (*pfn)(void);
HMODULE pDllHandle = ::LoadLibrary(szDllFile);
if(pDllHandle != NULL) { pffunc = (pfn)GetProcAddress(pDllHandle, szFunctionName); if( !pfCreateDataAgent ) { FreeLibrary(pDllHandle); } }