COM dll x64 上的 regsvr32 调试失败,无法获取有关此的详细信息

regsvr32 on COM dll x64 debug fails and can't get details on this

本文关键字:获取 详细信息 x64 dll 上的 regsvr32 失败 调试 COM      更新时间:2023-10-16

我有一个来自VS项目的COM dll输出,它适用于32位版本&debug,适用于64位版本,但无法注册64位调试。

它失败,并出现以下错误:

未能加载模块"(…).dll"。

确保二进制文件已存储在指定的路径,或对其进行调试以检查二进制或依赖的.DLL文件。

指定的模块不能建立

  • 已安装VS2008的SP1(修复了一些缺少依赖项的问题)
  • %windir%/system32/regsvr32或%windir%/sysWOW64/regsvr32失败
  • 事件查看器不显示任何相关内容(即应用程序错误)
  • SxsTrace没有捕获任何内容:
    • sxtrace跟踪-日志文件:sxtrace.etl
    • 执行regsvr32
    • sxtrace parse-日志文件:sxtrace.etl-输出文件:sxstrace.txt
    • 检查sxstrace.txt
  • 依赖性walker没有显示任何丢失的依赖性(丢失的依赖关系与发布dll完全相同),并且64位发布和64位调试依赖关系之间没有区别(除非有一些调试依赖关系而不是发布依赖关系)

如何检索有关错误的更多信息?

已经为此损失了几天,将持续数周。。。!

  • 正如Hans Passant所指出的,我们可以使用Process Monitor并过滤regsvr32活动
  • 我们还可以通过打开regsvr32.exe并对dll进行分析来运行依赖性walker配置文件(http://channel9.msdn.com/Forums/TechOff/252604-Cant-Register-a-dll-in-Vista-Home-Premium-registers-fine-in-XP/f2ea273334e74839962f9dea0152f420)