代码之家  ›  专栏  ›  技术社区  ›  rockeye

链接(随机?)使用可视化调试DLL失败

  •  2
  • rockeye  · 技术社区  · 16 年前

    我经常在Visual2005或2008下看到这个问题:

    当我编译一组DLL(原生C,C++,托管)时,有时很少有一些与微软调试DLL没有正确链接。输出没有提到任何内容(没有警告,没有错误)。我无法意识到,直到我启动我的程序,得到一个“模块未发现异常”没有更多的解释。

    当我用Dependency Walker打开DLL时,有些DLL丢失了 MSVCR90D.DLL MSVCP90D.DLL . 如果我幸运的话,我只需要重建损坏的dll来获得一个有效的dll。在最坏的情况下,重建会产生另一个损坏的dll,直到某个神秘的时刻(几小时或几天后)当a得到一个有效的dll。。。听起来很疯狂,不是吗?

    c: \windows\winsxs\x86_microsoft.vc90.debugcrt\u 1fc8b9a1E18e3b\u 9.0.30729.1_Ux-ww\u f863c71f\MSVCP90D.DLL

    这让我发疯了!。。。有什么想法吗?谢谢。

    2 回复  |  直到 16 年前
        1
  •  1
  •   i_am_jorf    16 年前

    使用/MT而不是/MD生成。

        2
  •  1
  •   Janet Rans    15 年前

    也许它正在混淆使用哪个dll。在C:\Program files\Visual Studio下搜索??? 对于MSVCR90D.DLL,它应该位于类似C:\Program files\Visual Studio???\sdk…\bin 然后在您的环境路径中,将该路径设置为在bin路径中查找。

    我已经见过很多次有很多相同名称和程序的dll 搞不清应该与哪个链接。

    珍妮特