VS2008下编的程序生成的EXE 在没有安装VS2008的计算机上能运行
我的系统是VISTA 用VS2008编的一个程序RELEASE生成的EXE文件 传给别人的XP系统用VC6的电脑就不能打开 为什么?
我能够打开XP下VC6编的程序
解决办法:
修改你VC项目的属性:常规选项中“MFC的使用”这里不要选择“在共享DLL中使用MFC”要选择“在静态库中使用MFC”,然后重新编译。
参考:
VC2005运行库文件
随着Visaul Stdio 2005的发布,VC++ 2005也有部分同学在使用,可是往往编写的程序不能在其他电脑中执行,有些只能发布成静态连接库的形式发布,现在大家可以下载vc++2005的运行库,约2.6Mb,相对26MB的.net 运行库要小多了,这样大家以后的程序可以大大减肥了!
另附上:
VC2005编译出来的程序文件,采用了manifest方式来指定dll文件。对于win98、win2000系统,把exe文件和VC的 dll连接库放到一起就成了。对于winxp、win2003系统就要麻烦的多了,VC的连接库默认是被放到了winsxs目录下,结果造成在这些系统上,直接拷贝exe文件,往往是不能运行(找不到msvcr80.dll、mfc80.dll文件等),或者在事件日志中报错。
解决方式:
方式一、在目标系统上安装2005版vcredist_x86.exe。
方式二、直接拷贝VS8目录下的VC \ redist \ x86 \ 目录下的 Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC几个文件夹,到exe所在的目录下,目录结构如下:
.\myapp.exe
.\myapp.dll
.\Microsoft.VC80.CRT\
.\Microsoft.VC80.MFC\
.\Microsoft.VC80.MFC\Microsoft.VC80.MFCLOC\
然后修改Microsoft.VC80.MFCLOC目录下的Microsoft.VC80.MFCLOC.manifest文件,将其中的version="8.0.50727.42",修改为version="8.0.50608.0"。
方式二的目录结构,在xp和2003下是没有问题的,但是在win98/win2000中,因为exe和dll不在同一目录下,就会出现找不到dll的问题。
有什么更好的解决呢?呵呵,国外的一个大牛(http://blog.kalmbachnet.de)找到一绝招:
方式三、
1、首先编译myapp.exe的时候,在配置中,选择生成单独的manifest文件,如:myapp.exe.manifest。
2、将myapp.exe、myapp.exe.manifest拷贝到一个目录下
3、将Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC几个目录下的文件,都拷贝到myapp.exe所在的目录下。
4、将Microsoft.VC80.MFCLOC.manifest文件中的version="8.0.50727.42",修改为version="8.0.50608.0"。
5、编辑myapp.exe目录下的所有 .manifest文件,将文件中的publicKey键值删除,一般是publicKeyToken="1fc8b3b9a1e18e3b"
6、然后运行myapp.exe看看,嗯。
网友回复:首先你要用depends看看你的程序依靠哪些dll,比如依靠msvcr80.dll、msvcp80.dll、mfc80u.dll
那么你需要这样发布:
/***************************************
yourapp.exe
msvcr80.dll
msvcp80.dll
mfc80u.dll
Microsoft.VC80.CRT.manifest
Microsoft.VC80.MFC.manifest
other_thirdparty.dll
****************************************/
这些文件必须在同一目录下,
Microsoft.VC80.CRT.manifest和Microsoft.VC80.MFC.manifest
可以分别在
Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT
和
Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.MFC目录下找到
转载于:https://www.cnblogs.com/hgy413/archive/2011/08/05/3693738.html
VS2008下编的程序生成的EXE 在没有安装VS2008的计算机上能运行相关推荐
- Windows系统激活问题:在运行Microsoft Windows 非核心版本的计算机上,运行 slui.exe 0x2a 0x803f7001 以显示错误文本 解决方案
[问题]在运行Microsoft Windows 非核心版本的计算机上,运行 slui.exe 0x2a 0x803f7001 以显示错误文本 [解决方案] 1.开机按下[Win + R],输入:re ...
- 错误0xC004F069在运行Microsoft Windows 非核心版本的计算机上,运行slui.exe
前言 今天笔记本一打开,提示 错误0xC004F069在运行Microsoft Windows 非核心版本的计算机上,运行slui.exe 问题 笔记本开机提示,我们Windows系统过期,我之前买了 ...
- 什么是EasyAntiCheat.exe,为什么在我的计算机上?
Fortnite and some other online games require EasyAntiCheat. This tool monitors your PC while you're ...
- WIN7安装VS2008的 Error1935 问题解决方案
(1)WIN7安装VS2008时,不出意外的出现了问题. 错误提示: Microsoft Visual Studio 2008 Professional Edition - ENU: [2] ERRO ...
- 在win7下用vs2008 编译程序时出现“mt.exe停止工作”问题的解决办法
在win7下用vs2008 编译程序时出现"mt.exe停止工作"问题的解决办法: 项目->属性->链接器->清单文件->生成清单,把后面的值改为" ...
- LabVIEW生成应用程序(exe)和安装程序(installer)
目录 1.生成应用程序(exe) 2.生成安装程序(installer) 使用LabVIEW编写好的程序最后往往需要将程序拿到目标电脑上去运行,如何将程序从开发电脑上移植到目标电脑上呢?有两种方法: ...
- 安装vs2008中文时出现错误Write error in the file
安装vs2008中文时出现错误Write error in the file VS2008TeamSuite90DayTrialCHSX1429243.iso. Probably the disk i ...
- 安装VS2008新挫折
在虚拟机中构建环境时,又遇到问题了,唉~~VS什么时候出个便携版就好了,WEB版就更好了,哈哈,估计微软正研究呢,云编译,呵呵! 第一个问题如下,安装.NET 3.5时,出现C++ Runtime e ...
- 安装vs2008出现的问题
前一阵子装了vs2008,除了一点问题,主要是由于原来装的是vs2005,先将2005卸载了,然后安装vs2008,结果安装的过程中出现了问题,在安装Web创作组件的时候出错了,显示的错误界面如下图所 ...
最新文章
- RDKit | 基于RDKit的SMILES转canonical SMILES
- AD 域服务简介(二)- Java 获取 AD 域用户
- 第18课:模型部署上线的几种服务发布方式
- js sort方法根据数组中对象的某一个属性值进行排序(实用方法)
- Linux 无线无法获取ip,Linux无法获取IP地址
- Linux下如何使用qt和anjuta来单步调试caffe的代码
- Python数据分析----Python3操作Excel-以豆瓣图书Top250为例
- 动手学深度学习day-two
- 数学建模竞赛题目 资产清算交易策略
- 证券行业智慧化转型思考
- 电商数据分析:FAST指标体系-用户矩阵分析模型
- 离散学习--笛卡尔积
- 71.JAVA编程思想——JAVA与CGI
- 美国Linux服务器系统增强安全的配置
- PyQt5 使用 webdings,Wingdings 字体来替代某些常用图片
- 计算机网络测试仪,网络测试仪如何使用
- 如果解决长尾数据(样本不均衡)
- Matlab求解常微分方程组
- SCI文章投稿状态一览
- 数据挖掘--矩阵的SVD分解
热门文章
- matlab二维矩阵可视化几种方法
- 窗口不小心拉到任务栏下面,窗口无法拖回桌面的解决办法
- Ubuntu下安装谷歌浏览器(Google chrome)报错
- 轻量级3d模型查看器_耐能取得两项软件著作权,自研轻量级3D人脸识别算法领先业界...
- visual 对话框之间调用_两套S71200之间实现S7通讯的方法
- 内存位置访问无效_万字长文——java内存模型之volatile深入解读
- c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...
- android通过webservice连接SQL数据库(一)服务器端
- 算法练习day12——190331(并查集)
- html 怎么在画布上绘制一个圆,javascript – 如何在画布上画一个圆圈?