MFC下dll的创建与使用
程序员文章站
2022-06-25 19:20:28
...
创建带有导出类的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、完成使用过程。
上一篇: RestTemplate 携带header 发送get请求
下一篇: 静态链接库、动态链接库使用方法
推荐阅读
-
windows下ipython的安装与使用详解
-
iOS中.a和.framework静态库的创建与.bundle资源包的使用详解
-
C#使用ICSharpCode.SharpZipLib.dll进行文件的压缩与解压功能
-
VS2010中lib与dll文件的生成与使用方法
-
windows下ipython的安装与使用详解
-
C#使用ICSharpCode.SharpZipLib.dll进行文件的压缩与解压功能
-
VS2010中lib与dll文件的生成与使用方法
-
iOS中.a和.framework静态库的创建与.bundle资源包的使用详解
-
举例讲解Python中metaclass元类的创建与使用
-
C#泛型类创建与使用的方法