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);
	}
}

原文地址:https://www.cnblogs.com/coderyoyo/p/1869740.html