我的系统是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的计算机上能运行相关推荐

  1. Windows系统激活问题:在运行Microsoft Windows 非核心版本的计算机上,运行 slui.exe 0x2a 0x803f7001 以显示错误文本 解决方案

    [问题]在运行Microsoft Windows 非核心版本的计算机上,运行 slui.exe 0x2a 0x803f7001 以显示错误文本 [解决方案] 1.开机按下[Win + R],输入:re ...

  2. 错误0xC004F069在运行Microsoft Windows 非核心版本的计算机上,运行slui.exe

    前言 今天笔记本一打开,提示 错误0xC004F069在运行Microsoft Windows 非核心版本的计算机上,运行slui.exe 问题 笔记本开机提示,我们Windows系统过期,我之前买了 ...

  3. 什么是EasyAntiCheat.exe,为什么在我的计算机上?

    Fortnite and some other online games require EasyAntiCheat. This tool monitors your PC while you're ...

  4. WIN7安装VS2008的 Error1935 问题解决方案

    (1)WIN7安装VS2008时,不出意外的出现了问题. 错误提示: Microsoft Visual Studio 2008 Professional Edition - ENU: [2] ERRO ...

  5. 在win7下用vs2008 编译程序时出现“mt.exe停止工作”问题的解决办法

    在win7下用vs2008 编译程序时出现"mt.exe停止工作"问题的解决办法: 项目->属性->链接器->清单文件->生成清单,把后面的值改为" ...

  6. LabVIEW生成应用程序(exe)和安装程序(installer)

    目录 1.生成应用程序(exe) 2.生成安装程序(installer) 使用LabVIEW编写好的程序最后往往需要将程序拿到目标电脑上去运行,如何将程序从开发电脑上移植到目标电脑上呢?有两种方法: ...

  7. 安装vs2008中文时出现错误Write error in the file

    安装vs2008中文时出现错误Write error in the file VS2008TeamSuite90DayTrialCHSX1429243.iso. Probably the disk i ...

  8. 安装VS2008新挫折

    在虚拟机中构建环境时,又遇到问题了,唉~~VS什么时候出个便携版就好了,WEB版就更好了,哈哈,估计微软正研究呢,云编译,呵呵! 第一个问题如下,安装.NET 3.5时,出现C++ Runtime e ...

  9. 安装vs2008出现的问题

    前一阵子装了vs2008,除了一点问题,主要是由于原来装的是vs2005,先将2005卸载了,然后安装vs2008,结果安装的过程中出现了问题,在安装Web创作组件的时候出错了,显示的错误界面如下图所 ...

最新文章

  1. RDKit | 基于RDKit的SMILES转canonical SMILES
  2. AD 域服务简介(二)- Java 获取 AD 域用户
  3. 第18课:模型部署上线的几种服务发布方式
  4. js sort方法根据数组中对象的某一个属性值进行排序(实用方法)
  5. Linux 无线无法获取ip,Linux无法获取IP地址
  6. Linux下如何使用qt和anjuta来单步调试caffe的代码
  7. Python数据分析----Python3操作Excel-以豆瓣图书Top250为例
  8. 动手学深度学习day-two
  9. 数学建模竞赛题目 资产清算交易策略
  10. 证券行业智慧化转型思考
  11. 电商数据分析:FAST指标体系-用户矩阵分析模型
  12. 离散学习--笛卡尔积
  13. 71.JAVA编程思想——JAVA与CGI
  14. 美国Linux服务器系统增强安全的配置
  15. PyQt5 使用 webdings,Wingdings 字体来替代某些常用图片
  16. 计算机网络测试仪,网络测试仪如何使用
  17. 如果解决长尾数据(样本不均衡)
  18. Matlab求解常微分方程组
  19. SCI文章投稿状态一览
  20. 数据挖掘--矩阵的SVD分解

热门文章

  1. matlab二维矩阵可视化几种方法
  2. 窗口不小心拉到任务栏下面,窗口无法拖回桌面的解决办法
  3. Ubuntu下安装谷歌浏览器(Google chrome)报错
  4. 轻量级3d模型查看器_耐能取得两项软件著作权,自研轻量级3D人脸识别算法领先业界...
  5. visual 对话框之间调用_两套S71200之间实现S7通讯的方法
  6. 内存位置访问无效_万字长文——java内存模型之volatile深入解读
  7. c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...
  8. android通过webservice连接SQL数据库(一)服务器端
  9. 算法练习day12——190331(并查集)
  10. html 怎么在画布上绘制一个圆,javascript – 如何在画布上画一个圆圈?