代码之家  ›  专栏  ›  技术社区  ›  Sergiy Belozorov Mohaiminul Islam

如何调试清单错误?

  •  1
  • Sergiy Belozorov Mohaiminul Islam  · 技术社区  · 14 年前

    我正在创建一个依赖于第三方库的应用程序,而第三方库又依赖于msvcp90d.dll。运行应用程序时,它无法启动并提供错误消息:

    alt text http://i39.tinypic.com/dn0ihf.jpg

    我在 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\amd64\Microsoft.VC90.DebugCRT C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT . 如您所见,其中一个是64位的,而另一个是32位的。当我将64位放入应用程序的目录中时,应用程序在加载时会自动崩溃(下面是从Visual Studio输出窗口记录)。对于32位,我会收到另一条错误消息:

    alt text http://i43.tinypic.com/33azzoj.jpg

    如果我按 Abort --程序关闭, Retry 导致中断调试会话 crt0msg.c 文件。这是系统文件,我不知道如何调试它。如果按“忽略”,则会收到另一条错误消息:

    alt text http://i39.tinypic.com/vhf4ia.jpg

    所以问题是 如何调试这些错误? 请给我一些链接,在那里我可以阅读更多关于它或指出我应该在这种情况下做什么。我知道这与清单问题有关,因此如果你知道任何问题,请给我一个链接,指向详细描述清单的良好资源,因为我到目前为止所发现的只是让我困惑。

    我使用的是64位Windows7,Visual Studio 2008版本9.0.30729.4108qfe。

    这是64位版本的msvcp90d.dll库的日志:

    'chrome.exe': Loaded 'D:\Projects\Chromium\devenv\install\build-msvc-debug\chromium-xml3d-rtsg2\chrome.exe', Symbols loaded.
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\shell32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\shlwapi.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\winmm.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\version.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\psapi.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'D:\Projects\Chromium\devenv\install\build-msvc-debug\chromium-xml3d-rtsg2\chrome.dll', Symbols loaded.
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc\comctl32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\oleacc.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\opengl32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\glu32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\ddraw.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\dciman32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\setupapi.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\devobj.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\dwmapi.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\secur32.dll', Symbols loaded (source information stripped).
    'chrome.exe': Loaded 'D:\Projects\Chromium\devenv\install\build-msvc-debug\rtsg2\bin\RTSG2.dll', Symbols loaded.
    'chrome.exe': Unloaded 'D:\Projects\Chromium\devenv\install\build-msvc-debug\chromium-xml3d-rtsg2\chrome.dll'
    'chrome.exe': Unloaded 'D:\Projects\Chromium\devenv\install\build-msvc-debug\rtsg2\bin\RTSG2.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\secur32.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\opengl32.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\ddraw.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\dwmapi.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\setupapi.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\devobj.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\cfgmgr32.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\dciman32.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\glu32.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\oleacc.dll'
    'chrome.exe': Unloaded 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc\comctl32.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\oleaut32.dll'
    'chrome.exe': Unloaded 'C:\Windows\SysWOW64\ole32.dll'
    'chrome.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Symbols loaded (source information stripped).
    The program '[1152] chrome.exe: Native' has exited with code 9 (0x9).
    
    1 回复  |  直到 11 年前
        1
  •  8
  •   Community Bayu Bramantya    7 年前

    在研究了一些在线资源之后,我自己找到了解决方案。因此,清单必须嵌入到每个需要依次加载一些外部库的应用程序和依赖库中。在我的情况下,我使用的第三方库没有包括这样的清单。我已经手动添加了一个,这解决了问题。

    我用来调试这个问题的工具是 Resource Hacker , Dependency Walker 以及一些在线手册,包括有关stackoverflow的其他问题:

    希望这对某人有用。