电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

VC++动态链接库编程之MFC扩展DLLVIP免费

VC++动态链接库编程之MFC扩展DLL_第1页
1/9
VC++动态链接库编程之MFC扩展DLL_第2页
2/9
VC++动态链接库编程之MFC扩展DLL_第3页
3/9
VC++动态链接库编程之MFC 扩展DLL 一、概论 MFC 扩展DLL 与 MFC 规则 DLL 的相同点在于在两种 DLL 的内部都可以使用 MFC 类库,其不同点在于 MFC 扩展DLL 与应用程序的接口可以是 MFC 的。MFC 扩展DLL 的含义在于它是 MFC的扩展,其主要功能是实现从现有 MFC 库类中派生出可重用的类。MFC 扩展DLL 使用 MFC 动态链接库版本,因此只有用共享 MFC 版本生成的 MFC 可执行文件(应用程序或规则 DLL)才能使用 MFC 扩展DLL。 MFC 规则 DLL 被 MFC 向导自动添加了一个 CWinApp 的对象,而 MFC 扩展DLL 则不包含该对象,它只是被自动添加了 DllMain 函数。对于 MFC 扩展DLL,开发人员必须在 DLL 的 DllMain函数中添加初始化和结束代码。 从下表我们可以看出三种 DLL 对 DllMain 入口函数的不同处理方式: DLL 类型 入口函数 非 MFC DLL 编程者提供 DllMain 函数 MFC 规则 DLL CWinApp 对象的 InitInstance 和 Ex itInstance MFC 扩展 DLL MFC DLL 向导生成 DllMain 函数 对于 MFC 扩展DLL,系统会自动在工程中添加如下表所示的宏,这些宏为 DLL 和应用程序的编写提供了方便。像 AFX_EXT_CLASS、AFX_EXT_API、AFX_EXT_DATA 这样的宏,在 DLL 和应用程序中将具有不同的定义,这取决于_AFXEXT 宏是否被定义。这使得在 DLL 和应用程序中,使用统一的一个宏就可以表示出输出和输入的不同意思。在 DLL 中,表示输出(因为_AFXEXT 被定义,通常是在编译器的标识参数中指定/D_AFXEXT);在应用程序中,则表示输入(_AFXEXT没有定义)。 宏 定义 AFX_CLASS_IMPORT __declspec(dllex port) AFX_API_IMPORT __declspec(dllex port) AFX_DATA_IMPORT __declspec(dllex port) AFX_CLASS_EXPORT __declspec(dllex port) AFX_API_EXPORT __declspec(dllex port) AFX_DATA_EXPORT __declspec(dllex port) AFX_EXT_CLASS #ifdef _AFXEXT AFX_CLASS_EXPORT #else AFX_CLASS_IMPORT AFX_EXT_API #ifdef _AFXEXT AFX_API_EXPORT #else AFX_API_IMPORT AFX_EXT_DATA #ifdef _AFXEXT AFX_DATA_EXPORT #else AFX_DATA_IMPORT 二、MFC 扩展DLL 导出MFC 派生类 在这个例子中,我们将产生一个名为“ExtDll”的 MFC 扩展DLL 工程,在这个DLL 中导出一个对话框类,这个对话框类派生自 MFC 类CDialog。 使用 MFC 向导生成 MF...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

VC++动态链接库编程之MFC扩展DLL

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部