dia2dump:CoCreateInstance失败 - HRESULT = 80040154

时间:2017-10-09 20:35:23

标签: windows visual-studio-2017

我正在尝试使用Visual Studio 2017及其dia2dump在Windows 7 x64上转储PDB的签名。我加载了C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\DIA SDK\Samples\DIA2Dump\DIA2Dump.sln。它成功建立:

1>------ Rebuild All started: Project: Dia2Dump, Configuration: Debug x64 ------
1>stdafx.cpp
1>regs.cpp
1>PrintSymbol.cpp
1>dia2dump.cpp
1>Generating Code...
1>Dia2Dump.vcxproj -> C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\DIA SDK\Samples\DIA2Dump\x64\Debug\Dia2Dump.exe
1>Dia2Dump.vcxproj -> C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\DIA SDK\Samples\DIA2Dump\x64\Debug\Dia2Dump.pdb (Partial PDB)
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

当我在PDB上运行它时,我收到以下错误:

C:\>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\DIA SDK\Samples\DIA2Dump\x64\Debug\Dia2Dump.exe" file.pdb
CoCreateInstance failed - HRESULT = 80040154

以防万一,我运行以下内容并且成功了,但是dia2dump失败并出现相同的错误(也是在重启后):

regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VC\msdia100.dll"

如何调试?

4 个答案:

答案 0 :(得分:1)

  

x64类未注册。您需要使用x64位.birthday-input-enter { max-height: 0; } .birthday-input-enter-active { -webkit-transition: max-height 1s ease; max-height: 1000px; } .birthday-input-exit { max-height: 1000px; } .birthday-input-exit-active { max-height: 0; -webkit-transition: max-height 1s ease; }

运行regsvr32

RbMm已经发布了正确答案作为评论。但如果有人面临同样的问题:要注册64位DLL,您需要使用msdiaXXX.dll文件夹中的regsvr32.exe!微软应该将其命名为C:/Windows/SYSWOW64 ...

答案 1 :(得分:1)

我设法通过将Dia2Dump.exe构建为32位应用程序来实现它。我在2017年Visual Studio社区中通过打开解决方案项目properties,打开Configuration Manage...,然后将项目平台更改为Win32来完成此操作。

我重建了项目,现在我不再有CoCreateInstance failed - HRESULT = 80040154个错误!它适用于我提供的任何pdb文件。

答案 2 :(得分:0)

截至2018年6月20日,我所做的是:

regsvr32 C:\Program Files\Common Files\Microsoft Shared\VC\msdia100.dll
regsvr32 C:\Program Files\Common Files\Microsoft Shared\VC\msdia90.dll
regsvr32 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\DIA SDK\bin\msdia140.dll

然后我编译为x64。它为我工作。如果x64不起作用,则可以尝试x86

答案 3 :(得分:0)

对于 Visual Studio 2019,我必须执行:

regsvr32 "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\DIA SDK\bin\msdia140.dll"

regsvr32 "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\DIA SDK\bin\amd64\msdia140.dll"

在任何“Common Files”文件夹中都找不到这些文件

相关问题