今天把自己写的程序“系统命令工具”给了一个网友,结果他运行出现了错误:没有找到MFC42D.DLL,因此这个应用程序未能启动.重新安装应用程序可能会修复此问题。我为此迷惑不解,去查资料。
谜 底是:其实一般在编程序时,都是生成了调试版的程序,就是在那个Debug目录下的可执行文件。运行这调试版的exe文件,都会动态连接 MFC42D.DLL和MSVCRTD.DLL这两个文件,所以你如果将这个文件在其它机器上运行而这台机器没有这两个文件或者缺少一个,系统则会出现: “找不到所需.dll文件-某某.dll”这样的提示。而一般系统都不带有这两个文件,除非是装了vc等。 解决方法很简单:1,选择菜单build->Set Active Configuration,然后选择Release, 2,选择菜单project->settings,在General选项卡里第一项选择Use MFC in a static Library,即静态连接 其实这就是生成了发布版程序,在Release目录下,可执行文件不会用到那两个讨厌的dll文件,一般到别的机器上都能用,试试吧!
OK,我照做了,写了另一个程序,然后到处找人做实验。结果是正确的。当对方机子上有VC时,我们用DEBUG和动态链接库编的程序是可以用的;否则,就会提示出错,只能用Release和静态链接。因此,要做一个通用的程序,就必须用发布版。