📄 19.9 mfc dll.txt
字号:
19.9 MFC DLL
VC++集成开发工具还提供了一个向导: MFC AppWizard ( dll),它将帮助我们创建一个支持MFC类库的 DLL。在此向导中,增加了对MFC类库的支持。下面我们就利用该向导创建一个MFCDLL。
首先,在 VC++开发环境中,利用【File\New...】菜单项打开工程创建对话框,选择 Projects选项卡,然后选中 "MFC AppWizard (dll )"选项,并将新工程命名为"Dll4"。单击【OK】按钮后,进入如图 19.21所示的向导界面。
图 19.21创建MFCDLL的向导界面
该界面允许用户选择将要创建的DLL的类型,有以下三种可选类型:
. Regular DLL with MFC statica11y linked
创建一个常规的动态链接库,该DLL使用MFC的静态链接。关于静态库和动态库,前面的内容已经介绍了,如果采用静态库,在发布产品时,只需要提供实现的DLL即可。
. Regular DLL using shared MFC DLL
创建一个常规的动态链接库,该DLL使用共享的MFCDLL。如果选择此选项创建一
个常规的动态链接库的话,当发布该 DLL产品时,一定要确保用户机器上有 MFC动态链接库。如果用户机器上没有 MFCDLL.那么该 DLL将不能被加载。
. MFC Extension DLL(using shared MFC DLL)
创建一个扩展的 MFC DLL.该 DLL也是使用共享的 MFC DLL MFC扩展 DLL与 MFC常规 DLL之间的区别是:前者可以导出 MFC类,后者不能导出 MFC类,只能导出自己编写的 C++类。
编写支持 MFC的 DLL与前面编写 Win32DLL的方法是类似的,只是前者对 MFC提供了很好的支持。
另外,还有一点需要提醒读者,在访问 DLL的客户端程序中,如果对 DLL的访问已经完成,不再需要访问该 DLL时,应该调用 FreeLibrary函数释放该 DLL FreeLibrary函数主要是减少被加载的 DLL的引用计数。当此计数变为 0时,该 DLL模块将从调用进程的地址空间卸载。 FreeLibrary函数的函数原型声明如下所示:
BOOL FreeLibrary ( HMODULE hModule) ;
FreeLibrary函数有一个 HMODULE类型的参数,该参数指定将要释放的那个 DLL的模块句柄。调用 FreeLibrary函数后,该句柄不再有效。
也就是说,如果采用动态加载方式使用 DLL时,在需要访问时,调用 LoadLibary函数加载该 DLL:当不再需要访问该 DLL时,调用 FreeLibrary画数释放对该 DLL的引用。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -