我正在尝试使用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"
如何调试?
答案 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”文件夹中都找不到这些文件