为什么我的MFC在有的人的电脑上运行不了,用VS2005中的C++,为什么呢?

2025-04-28 10:32:04
推荐回答(4个)
回答1:

vs编译的文件要带自己的运行库文件的,当然你用release版本会好点,具体的工作就很麻烦了.
Vs版编译的EXE在其他编译环境中打开,增加和修改运行库:release版本(..\VC\redis\x86)或者Debug版本(..\VC\redist\Debug_NonRedist\x86)
具体方法如下:
1、打开*.EXE文件(用edit打开或者用记事本打开),找到版本号VERSION(如:“version="9.0.21022.8"”);
2、Vs的安装目录下寻找redis(如:“L:\Program Files\Microsoft Visual Studio 9.0\VC\redist”),修改其中所有的*.manifest文档中的版本号与EXE文件一致,把exe文件放到X86目录下;
3、DEBUG版本:修改..\VC\redist\Debug_NonRedist\x86中的三个文件中的*.manifest文档中的版本号与其EXE文件一致(如:“L:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86”),把exe文件放到....\VC\redist\Debug_NonRedist\x86中。
4、RELEASE版本:修改..\VC\redist\x86中的三个文件中的*.manifest文档中的版本号与其EXE文件一致(如:L:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86),把exe文件放到....\VC\redist\x86中。
这是我自己总结的,VS2008上我试验过,一切OK

回答2:

需要安装vs2005运行库和.net framwork2.0 不管你用没用managed c++

或者你静态链接 发release版本

回答3:

右击你的MFC 工程,在弹出菜单中选“属性”。
在工程的属性页中,修改“Use of MFC”项的值,默认是“Use MFC in a Shared DLL”,把它改为“Use MFC in a Static Library”,然后重新编译生成。这样就没问题了。

原因是,在建MFC工程的时候,默认情况下,工程使用共享MFC和VC里面的DLL文件,这样可以加快编译生成速度,但是如果你把你的程序移到别的电脑,因为其他电脑可能没安装Visual Studio,所有没有MFC和VC库的DLL,所以运行不起来。
选用“Use MFC in a Static Library”,意思是:当编译生成时,使用静态库(.lib文件)。把你程序需要用到的MFC库的函数和其他代码编译你自己生成的exe文件。这样你的程序exe运行就不需要MFC和VC库里面DLL了。但是这样你的exe文件会大很多。

回答4:

右击你的MFC 工程,在弹出菜单中选“属性”。
在工程的属性页中,修改“Use of MFC”项的值,默认是“Use MFC in a Shared DLL”,把它改为“Use MFC in a Static Library”,然后重新编译生成。这样就没问题了。

原因是,在建MFC工程的时候,默认情况下,工程使用共享MFC和VC里面的DLL文件,这样可以加快编译生成速度,但是如果你把你的程序移到别的电脑,因为其他电脑可能没安装Visual Studio,所有没有MFC和VC库的DLL,所以运行不起来。