在自己的dll中声明
#ifdef __cplusplus
#define EXPORT extern "C" __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif
EXPORT int Add(int x, int y);
然后实现
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
EXPORT int Add(int x, int y)
{
return (x + y);
}
在自己要使用的时候有两种方法
1,给自己的工程添加dll的依赖关系,再把头文件加到自己的工程中,即可直接使用。感觉还是不方便还要有头才能文件使用。
2,获取函数的函数指针,通过函数指针调用
先定义个函数指针类型和库中的函数格式一样
typedef int (*ADDPFN)(int, int);
定义个函数指针获得dll中其函数的指针
ADDPFN pfn;
hLibrary = LoadLibrary("AddLib.dll");
if (!hLibrary)
{
return ;
}
最终获得
pfn = (ADDPFN)GetProcAddress(hLibrary, "Add");
if (!pfn)
{
return ;
}
使用
pfn(1,2);