MFC下dll的创建与使用

xiaoxiao2021-02-28  141

创建带有导出类的dll:

1、vc向导创建mfcdll项目; 2、创建需要导出的类,正常创建 3、类的h文件中声明class时添加_declspec(dllexport),即由class MyClass{} 变为class _declspec(dllexport) MyClass{}; 4、在dll项目的App类中,头文件中添加extern “C” __declspec(dllexport) MyClass; cpp文件中添加extern “C” _declspec(dllexport) MyClass; 5、完成导出类dll创建。

使用带有导出类的dll:

1、拷贝dll文件+dll.lib+MyClass.h到项目中; 2、在需要使用MyClass类的类中添加

#include "MyClass.h" #pragma comment(lib,"Mdll.lib") class __declspec(dllimport) MyClass;

以上三句; 3、完成引用dll类,可随即使用该类。

创建带有导出函数的dll:

1、在dll项目中的App类cpp文件中追加需要导出的函数,例如:

extern "C" _declspec(dllexport) void Demo() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); DemoDlg dlg;//显示dll中的一个对话框 dlg.DoModal(); }

2、在dll项目的App类的头文件中添加extern “C” _declspec(dllexport) void Demo(); 3、完成导出函数dll的创建。

使用带有导出函数的dll:

A:静态

–1、拷贝dll文件+dll.lib+dll.h到项目中; –2、在需要使用函数的类中添加

#include "dll.h" #pragma comment(lib,"dll.lib")

–3、完成函数添加,在作用区域内可随意使用函数。

B:动态

–1、拷贝dll文件到项目中; –2、通过以下实例使用加载dll和释放dll;

typedef void (*pFunction)(void); HINSTANCE hLibrary; //DLL句柄 hLibrary = LoadLibrary("dll.dll"); if (hLibrary == NULL) { //加载失败 return; } pFunction pDemo = (pFunction)GetProcAddress(hLibrary,"Demo"); if (NULL==pDemo) //没有Demo函数 else pDemo(); FreeLibrary(hLibrary);//不再使用hLibrary时释放

–3、完成使用过程。

转载请注明原文地址: https://www.6miu.com/read-21057.html

最新回复(0)