MFC 动态库

简介

VC6可以编写如下四种动态库:

  1. Win32 DLL (图1 Win32 Dynamic-link Library)

  2. Regular DLLs statically linked to MFC

  3. Regular DLLs dynamically linked to MFC

  4. MFC Extension DLL(using shared MFC DLL)

创建工程时,选择MFC AppWizard(dll)后,会进入图2所示的对话框,进行2、3、4的选择。

123122_k01c_2281329.jpg

图1 MFC New

123123_10bj_2281329.jpg

图2 MFC AppWizard(dll)

如何选择

详见https://msdn.microsoft.com/en-us/library/9se914de.aspx

  1. 如果dll不需要用到MFC,如CString等,则选择第一种(Win32 DLL)

  2. Regular DLLs statically linked to MFC和Regular DLLs dynamically linked to MFC区别在于,后者为动态链接,If you statically link to MFC, the file size of your DLL will be larger and potentially take up extra memory because it loads its own private copy of the MFC library code.

  3. 相对于Regular DLLs,MFC Extension DLL(using shared MFC DLL)可以导出MFC类。

Regular DLLs dynamically linked to MFC

导出函数,可以使用__declspec(dllexport)或者在.def文件中声明。

使用前者,通常需要定义如下一段代码:

#ifdef DLLTEST_EXPORT
#define DLLTEST_API __declspec(dllexport)
#else 
#define DLLTEST_API __declspec(dllimport)
#endif

并在dll工程配置(C++/Proprecessor definitions)中,定义宏DLLTEST_EXPORT

注:如果选择win32 dll,向导会自动添加并定义对应的宏。

转载于:https://my.oschina.net/shanlilaideyu/blog/493118

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值