我的程序中使用了第三方的dll,这个dll会调用msvcp80.dll。程序执行时,提示找不到msvcp80.dll。
是因为版本的原因吗?如果是因为版本,那么如何得知要使用哪个版本的msvcp80.dll?
我用Dependency.exe没看出来。

解决方案 »

  1.   

    msvcp80.dll在程序目录vc搜索的目录下么?版本会导致提示找不到文件?!不,是版本原因的话是提示找不到函数。
      

  2.   

    是版本的原因,不同的VC版本生成的程序要依赖相应版本的运行库。可以用UltraEdit等工具打开程序文件,在文件最后部分可以看到版本号。
      

  3.   

    MS现在的VC的dll有很多版本,你需要对应上对应的版本,这个一般WinSXS下面除了有dll还有对应版本描述的manifest文件,你查看一下你dll用到的对应的版本信息,然后带上对应的dll,manifest文件
      

  4.   

    查看Manifest文件,里面会记录对应DLL的版本号,你看下是否和你机器上的一致。。
      

  5.   

    看一下link下面是否把这个库文件导入了?
      

  6.   

    程序的Manifest文件是内嵌的还在外部的?---如果外部的,需要把Manifest文件一并拷过来。
      

  7.   

    有了进一步的发现:
    C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.762_none_10b2f55f9bffb8f8 存在,并且里面也有相应的dll。但是程序就是无法加载这个版本的msvcp80.dll。
    在Dependency里手工把这个目录加上后,Dependency就不提示错误了。但这个办法仅限于Dependency本身。
    manifest信息是内嵌的。
      

  8.   

    你程序工程属性中,添加manifest来指定对应的msvcp80.dll版本...
      

  9.   

    我自己的程序已经包含了manifest信息,但我的程序调用的dll还调用了其它的dll。看来得先想办法找出是哪个dll的问题。