VS2005的程序文件分发问题及解决

原创 2006年06月01日 10:26:00

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看看,嗯。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Android Studio开发中常见问题及解决(二)

1、Error:(53, 35) 错误: 无法访问HttpRequestBase 找不到org.apache.http.client.methods.HttpRequestBase的类文件 解决方案:...

Android Studio开发中常见问题及解决(一)

1、Error:Error: com.android.ide.common.process.ProcessException:    org.gradle.process.internal.ExecE...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

关于“CSDN发表不了博文”的解答——我的思索

解决之道 当我们遇到问题后,我们(同学、老师)应该怎么做呢?用一个学生微博的评论作为一个方法开端吧,“要锻炼学生自己解决问题的能力”,怎样提高解决问题的能力呢?“先百度具体问题,若找不到,就...

Android 解决ListView异步加载网络数据(图片文字)出现位置错乱以及优化ListView的加载

Android 多种方法解决以及优化ListView的加载网络数据程出现错乱的问题 1.普通的缓存机制存在的问题 下面的代码就是最常见的异步加载图片的方法: public Vi...

非代码性问题

学习中遇到的问题及解决方案记录下来

VC6.0转VS2005问题及解决办法

该文主要内容转载自:http://www.cnblogs.com/sunliming/archive/2011/05/08/2040152.html。 我对原文的内容加以整理,便于阅读,以后发现新的...

XML中配置dubbo相关标签不能解析的问题

1、问题Java工程中xml配置dubbo时提示如下问题: Multiple annotations found at this line: - cvc-complex-type.2.4....

存入数据库的Date类型只有年月日,没有时分秒的原因和解决办法

问题:存入数据库的Date类型只有年月日,没有时分秒 我尝试过几种方式,结果都是年月日,明明有些地方可以有时分秒... 后来想到,所有和时间有关的地方,有一个地方我没有去注意。我是...

解决Error 1069:The service did not start due to a logon failure

本文的解决方法旨在告诉读者即使是操作系统的账户密码过期也会引起Error 1069:The service did not start due to a logon failure

扔硬币概率

问题:连续5次扔一枚均匀的硬币,在以下3种结果中,哪种结果出现的可能性最大,请做出选择: A、正-反-正-反-正 B、正-正-反-正-正 C、正-正-反-反-反 -------------------...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)