MFC下dll的创建与使用

创建带有导出类的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、完成使用过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值