标签:lin 创建 nbsp oca link family 函数参数 addition def
打开VS2008,点击File——>New——>Project——>Visual C++——>Win32 Console Application,填入工程名称,下一步,选择Application Type为DLL,Additional options为Empty project。
添加cpp文件和h文件,实现DLL需求的功能。、
点击生成解决方案,可在对应目录下看到生成的lib和dll文件。
DLL导出有两种方式:__declspec(dllexport)和.def文件。c++加载DLL也有两种方式(静态链接和动态链接)。
#ifdef XXX_EXPORTS
#define XXX_API __declspec(dllexport)
#else
#define XXX_API __declspec(dllimport)
#endif
extern "C" BOOL XXX_API XXX(函数参数列表);
LIBRARY "xxx"(DLL的名称)
EXPORTS
xxx(要导出的函数名)
#pragma comment(lib,"xxx.lib")
typedef BOOL (*XXXFun)(参数列表);
加载:
HMODULE hModule = LoadLibrary(_T("XXX.dll"));
if(NULL != hModule)
{
XXXFun funCreateObject = (XXXFun)GetProcAddress(hModule,"CreateObject");
if(funCreateObject != NULL)
{
...
}
}
else
{
perror("funCreateObject失败");
FreeLibrary(hModule);
}
静态链接的时候不关心函数的导出函数名字,只有动态链接的时候才会关心函数的导出名字。调用函数的时候一定要注意调用约定,不然会导致程序崩溃。
创建一个新的Win32控制台项目或其他,设置C/C++和Linker相关项。
标签:lin 创建 nbsp oca link family 函数参数 addition def
原文地址:https://www.cnblogs.com/Sheenagh/p/12215693.html