none
遇到一个DLL连接问题,请老鸟们帮忙,谢谢 RRS feed

  • 问题

  • WIN7下利用VS2005开发一个基于窗体的程序,其依赖库清单内容是8.00.50727.4053 CRT、MFC,程序在本机运行时从IDE上查看是载入了8.00.50727.4927版本的CRT库。 把这个程序打包放置在其它机器(WinXP系统)上运行,会提示MSVCR80.DLL 8.00.50727.4053错误。 依赖库8.00.50727.4053全部COPY到目标机器的WinSxs下面,另外也把4927版本依赖库放置在WinSxs中,仍然提示同样错误。

    请各位老鸟们帮忙,这个问题怎么解决?

    2010年3月30日 10:42

全部回复

  • 在目标机安装对应的 Visual C++ Runtime Library 或者源程序用 /MT 编译
    2010年3月30日 11:50
  • 最好使用静态链接库,设置一下工程属性吧


    0xBAADF00D
    2010年3月30日 14:34
    版主
  • 目标机器安装过C++ Runtime Library,包含8.00.50727.762和8.00.50727.4053两个版本,仍然是出现同样的问题。 这些DLL 也COPY到程序文件目录,出现问题一样。

    2010年3月30日 16:19
  • 你好 vagrantor,

    我不清楚是不是因为Win7里自带C++ runtime库和其他版本Windows存在兼容问题引起的。你有没有其他XP机器也装了VS环境的?在XP下面编译试试,然后放到Win7里运行是不是有问题?

    Sincerely,
    Kira Qian
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    2010年4月2日 6:32
  • 到微软的网站上下载可再发行包,例如,Visual studio 2008 sp1 redistribution,就是给VC++2008SP1编译的C/C++程序用的可再发行包。里面就是要用到的C/C++运行时库,只要在目标机器上安装一下就行了,它会根据目标机器的操作系统进行安装。

    从Windows7上直接把运行库拷贝到XP肯定不行,运行库是针对不同系统编译的。


    LHL
    2010年4月2日 9:06