对于自己机器安装了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文件占用空间要大一些。

用户可以根据实际情况选择发布的方式。