对于自己机器安装了VS开发环境,生成MFC的exe文件能够在自己机器上运行,复制到其他目标机器可能出现不能运行的情况。下面就个人经历将发布的两中情况简要说明。
1、工程属性中:配置属性-常规,MFC使用类型选择“在共享的DLL中使用MFC”;C/C++ - 代码生成-MFC的使用 选择“多线程DLL(/MD)”
这种情况下,若直接将exe文件放到目标机器运行,则需要目标机器安装相应的开发平台、或者将生成exe程序的依赖dll文件复制到目标机器的程序运行目录下;若用到第三方库,也要复制相应的dll文件。其中依赖的dll文件可以通过Dependency查看。
简单的说,若选择这种方式,需要和exe程序和所有需要的系统和第三方dll文件一起打包。
2、工程属性中:配置属性-常规,MFC使用类型选择“在静态库中使用MFC”;C/C++ - 代码生成-MFC的使用 选择“多线程(/MT)”
这种情况下,exe程序中已经包含了开发平台单独需要的dll文件。若不包含第三方库,可以将exe复制到目标机器直接运行了;若包含第三方库,需要将第三方的dll文件复制到程序运行目录。
简单的说,这种方式下,仅需要exe程序和用到的第三方dll文件一起打包即可。相对第一种方式,第二种方式生成的exe文件占用空间要大一些。
用户可以根据实际情况选择发布的方式。
本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以留言沟通
Testner创始人(testner.club) Sea