1、启动Visual Studio 2017软件,通过菜单栏中的“文件 > 新建 > 项楫默礤鲼目”打开“新建项目窗口”。在该轻拔吴悃窗口中,选择“Windows桌面 > MFC DLL”,然后设置项目名称和存储位置并单击“确定按钮”确定项目创建;
2、在弹出的“MFC DLL”窗口中,选择DLL类型为“使用共享MFC DLL的规则DLL”,然后点击“确定按钮”确定项目创建;
3、打开新建MFC DLL项目中的“MFCLibrary1.h”头文件,你会发现VS自动从CWinApp派生了一个CMFCLibrary1App类;
4、打开“MFCLibrary1.cpp”文件,该文件中给出了一段使用MFC DLL的注意事项,继续向下看代码,你会发现它定义了一个theApp全局变量。这一点与基于窗口的MFC项目是一致的,也就意味着在MFC DLL中可以自由使用MFC类库;
5、点击VS2017菜单栏中的“生成 > 生成解决方案”编译项目。查看“输出面板”中给出的输出信息,可知项目编译成功;
6、切换到项目的资源列表,然后新建一个Dialog资源。在打开的新对话框资源中,通过类向导添加一个“CLoginDlg类(为了演示随便取的名字)”(如果你的VS2017出现无法添加的错误,请参考引用文章修复);
7、打开“LoginDlg.h”文件,在CLoginDlg类声明代码的下方使用“extern关键字”声明两个函数,分别用于创建/销毁CLoginDlg实例;
8、打开“LoginDlg.cpp”文件,添加makeLoginDlg函数和removeLoginDlg函数的实现代码(很简单,只是new和delete);
9、打开“MFCLibrary1.def”文件(该文件用于指定DLL中需要导出的函数和变量),在EXPORTS下方写上需要导出的makeLoginDlg函数和removeLoginDlg函数的名称;
10、保存所有文件修改,然后再次生成解决方案。通过“输出面板”中的信息,可以确认项目代码编写正确;
11、打开MFCLibrary1项目的输出目录,然后通过Depends软件打开生成的MFCLibrary1.dll文件。在Depends中可以见到该DLL中成功导出了makeLoginDlg函数和removeLoginDlg函数;
12、如果项目中需要将MFC窗口藏在DLL中,那么通过新建MFC DLL项目就是最好的选择。它自动将MFC运行所需要的一整套机制拎枋辏话都为你封装好了,直接使用即可。至于Depends软件,那是微软提供的用于查看PE文件依赖和导出标记的有力工具,调试中是必不可少的。尤其是遇到软件启动报找不到DLL时,就得靠它分析文件依赖了;