⑴ 为什么用vs编译出来的exe文件不能在电脑上运行
vs2010编译出来的程序默认是debug模式是要用到系统以外的msvcr100d.ll,这个文件在没有装vs或vs运行库的电脑里一般没有,release模式默认要用到系统外的msvcr100.dll,这个文件也是一般电脑上没有,你最好把相应的dll放在同一个文件夹中传过去,以便正常运行。还有,如果你直接传exe文件,QQ会把这个exe文件重命名成“**.exe.重命名文件”,也就是exe文件到对方那里成了".重命名"文件,结果对方电脑找不到相关联的程序,所以提示不知道用什么打开程序,你可以让他再重命名成exe文件,要么你把exe文件放在一个文件夹里面,然后把文件夹传过去,文件夹里面的exe文件是不会重命名的成“.重命名”文件的,只有直接传exe文件时才会被替换成重命名文件。
⑵ VS制作的exe文件怎么在别的电脑上运行
调查好你用到的动态库及静态库,放在exe同一个路径下就能运行,如果不行,把dll放在system32下,或者加环境变量
⑶ 用VS2010写的程序为什么在其他电脑上不能运行
要成功运行程序,需要一个名字叫msi的系统数据库。msi拒绝访问也就是说,你的程序无法访问msi这个必要的系统数据库。。这不是你的程序本身的问题,你的电脑也没问题!!而是别的电脑有问题,这个原因可能是 别的电脑那个msi系统文件损坏了 或者不存在 这需要修复。
⑷ 用vs2010编译出来的可执行文件xx.exe(在debug文件夹里面的那个),在不装vs的电脑上为什么就不能运行了
vs2010编译出来的程序默认是debug模式是要用到系统以外的msvcr100d.ll,这个文件在没有装vs或vs运行库的电脑里一般没有,release模式默认要用到系统外的msvcr100.dll,这个文件也是一般电脑上没有,你最好把相应的dll放在同一个文件夹中传过去,以便正常运行。还有,如果你直接传exe文件,QQ会把这个exe文件重命名成“**.exe.重命名文件”,也就是exe文件到对方那里成了".重命名"文件,结果对方电脑找不到相关联的程序,所以提示不知道用什么打开程序,你可以让他再重命名成exe文件,要么你把exe文件放在一个文件夹里面,然后把文件夹传过去,文件夹里面的exe文件是不会重命名的成“.重命名”文件的,只有直接传exe文件时才会被替换成重命名文件。
⑸ 求助:用VS2010生成的exe文件为什么不能直接运行
用vs2010自带的打包工具打包即可。但也要对方电脑上有.net framework。如果没有,要额外把这个也打包进去。
⑹ visual studio编写的exe程序不能在没装vs的电脑上运行,怎么办啊
其实有很多的解决办法呀,如下:(一般你看是具体什么提示然后,使用相应的提示到G.cn或网络找答案即可.....),下面的方法可参考使用...
1).在C:\Program
Files\Microsoft
Visual
Studio
8\VC\redist\Debug_NonRedist\x86
\Microsoft.VC80.DebugCRT
下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。
其他release版,MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!
2).修改编译选项,将/MD或/MDd
改为
/MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不
再需要VC的dll了。
3).
工程-》属性-》配置属性-》常规-》MFC的使用,选择"在静态库中使用mfc"
这样生成的exe文件应该就可以在其他机器上跑了。
4).在vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装
5).修改项目属性的编译开关
工程-->属性-->配置属性-->C/C++-->代码生成-->运行时库
修改为Multi-threaded(/MT)
修改了Runtime类型以后,需要将MFC的编译类型也改成静态库
工程-->属性-->配置属性-->常规-->MFC的使用
修改为:在静态库中使用MFC;
一部分情况下在这步就能解决问题,另外一部分情况会遇见如下情况,编译器报错:储如:"再次定义"
解决方法如下:
工程-->属性-->配置属性-->链接器-->输入-->附加依赖项
中加入相应的*.lib
(如:加入nafxcw.lib,libcpmt.lib
)这一般根据你程序所报的错进行修改;
工程-->属性-->配置属性-->链接器-->输入-->特定的库
(如:加入nafxcw.lib,libcpmt.lib
)
这样链接程序就不会先按照默认顺序来连接这两个库文件,而是在最后在加入对他们的引用.
下面是一张可能发生冲突的列表
若要使用此运行时库
请忽略这些库
单线程
(libc.lib)
libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多线程
(libcmt.lib)
libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用
DLL
的多线程
(msvcrt.lib)
libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
调试单线程
(libcd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
调试多线程
(libcmtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用
DLL
的调试多线程
(msvcrtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
⑺ vs2013编译后EXE无法运行
需 要对方电脑也安装.netframework
版本和你开发时的版本一样才行的