为什么单独exe文件在别的电脑上不能运行?

情况:
1:VC6.0写的控制台程序(黑屏白字的那种),只把exe文件放到另一台没有VC6.0的电脑中去可以正常运行。
2:VC6.0写的MFC简单对话框程序,只把EXE文件放到有VC6.0的电脑上可以正常运行,但是放到没有VC6.0的电脑上就不能运行了。
3:VS2005用C++ MFC写的功能和上面一样的简单对话框程序,只把EXE文件放到只有VC6.0的电脑或者什么都没有的电脑都不能用。
只用告诉我怎样解决就好了(详细一些,具体到需要点什么),能够解释原因的更好,+分,谢谢!

主要是MFC库链接方式的问题,使用MFC分动态连接和静态连接两种:
静态连接就是把需要的MFC库函数放进你的exe之中,这样,在MFC库函数文件不在的情况下,你的exe仍然可以使用到这个库函数。
动态连接就与之相反,库函数不在exe之中,这样在运行时,就必须加载相应的MFC dll,否则无法正常运行。
所以,如果运行环境没有对应的库文件存在(比如没有安装vc),为了仍然能够运行,就要同时Copy相应的MFC DLL,或者采用静态链接的方式:

VC6.0中这样选择:Project菜单中选择Settings,在弹出的对话框中的General页面,Microsoft Foundation Classes处选择Use MFC in a Static Library;

VS2005中这样:“项目”菜单中选择“属性”,在弹出的属性对话框中,左侧选择“通用配置”,然后在右侧的“MFC的使用”中选择“在静态库中使用MFC”
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-02-19
编译程序的时候的编译方式选择release,编译出来的程序就可以再没装VC的电脑上运行

默认编译方式是debug,这种方式编译的程序需要安装MFC的动态链接库.可以把你VC机器上的那个DLL文件考到别的电脑上
好像是MFC42.dll吧
第2个回答  2009-02-20
把你编写好的程序需要的支持库一起 打包过去
第3个回答  2009-02-20
编译时用静态编译不就行了
第4个回答  2009-02-19
应该确实库文件吧

为什么单独exe文件在别的电脑上不能运行?
主要是MFC库链接方式的问题,使用MFC分动态连接和静态连接两种:静态连接就是把需要的MFC库函数放进你的exe之中,这样,在MFC库函数文件不在的情况下,你的exe仍然可以使用到这个库函数。动态连接就与之相反,库函数不在exe之中,这样在运行时,就必须加载相应的MFC dll,否则无法正常运行。所以,如果运...

为什么.exe文件复制到别人的电脑里不能打开
1。你把快捷方式拷过去了,而不是exe文件完整版。2、你的操作无误,U盘携带了自复制病毒,这种病毒见到exe便直接抽取,替换为自己的反应连接。exe文件实质是被删除了或被内存隐藏。3。对方电脑含有exe反应病毒,遇到新插入的U盘则会进行非法操作,有些类似于队U盘的感染。建议,改名exe扩展名再拷贝,拷...

同一个EXE文件,在两台电脑上操作一台能执行,另一台却不能执行(点击无反...
2.杀毒。中毒也会造成这种情况!!3.这个exe文件可能是以前的老游戏。请试试用兼容模式运行!!4.还有可能是你启动的东西和这程序有冲突! 在运行里输入 msconfig 回车 把启动项里多余的项目去掉! 重启!5.关掉你的杀毒软件的实时监控,有些杀毒软件会把一些老程序识辨成危险程 序,这样你就不能运...

...2008 编译成功的EXE为何在其他电脑上无法运行
是你的程序里用了Activex控件,生成单一的.exe文件在自已电脑上可以运行,在别人电脑上肯定不能运行,因为缺少支持文件,你要将你的程序做成可安装的版本,或是打包,VB自带的就有程序打包功能,很简单!“package & deployment 向导”这个做出来的是一个绿色软件,不用安装也可以用!你可以试试 ...

为什么把pycharm里的文件打包为exe文件后,在别的电脑
1、文件权限问题:在打包成exe文件的过程中,如果没有正确设置文件权限,可能导致在别的电脑上无法执行程序。2、防火墙或杀毒软件阻止程序运行:防火墙或杀毒软件可能会拦截具有可疑来源或行为的文件,需要将该文件添加到信任列表中,以便将来可以顺利运行。3、目标电脑环境不兼容:打包的exe文件可能依赖于特定...

为什么生成的exe文件在别人的电脑上无法运行
你这个EXE是在什么环境下编译生成的?如果不自带运行库,那么别人的电脑当中没有这个编译环境的话,当然无法运行。

自己用C编写的程序生成的exe文件在别的机子怎么运行不了?
运行这调试版的exe文件,都会动态连接 MFC42D.DLL和MSVCRTD.DLL这两个文件,所以你如果将这个文件在其它机器上运行而这台机器没有这两个文件或者缺少一个,系统则会出现: “找不到所需.dll文件-某某.dll”这样的提示。而一般系统都不带有这两个文件,除非是装了vc等。解决方法很简单:1,选择菜单...

...在自己电脑可以打开在别人电脑打不开 怎么才能再别人电脑上打开了...
这种情况可能的原因就是别的电脑没有安装相关E语言运行的支持库,一般打包E语言程序的话都会连基本的支持库也打包进去然后才在别人的机子上运行的,单纯拷贝一个exe是无法运行的

为什么C++的exe文件在另一台计算机无法运行?
PC上运行,不需要装VC。方法如下:Build->SetActive Configuration 在弹出的Set Active Project configuration对话框中,选“XXX-Win32 Release",点”OK“,再编译运行,在自己的工程目录下就会多出一个”Release"文件夹,这个文件夹里的exe文件,就可以在没有装VC的电脑上运行。

VS2008生成的exe文件在别人电脑上打不开
自己编写的程序生成的exe文件,到了别人的电脑上却打不开,是因为缺少一些dll动态库,只要把相应的动态库也一起拷给别人就行了 打开VS2008安装目录,我的电脑默认安装在C盘。 C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\redist\\x86\\Microsoft.VC90.CRT 复制出4个文件Microsoft.VC90.DebugCRT....

相似回答