【问题标题】:regsvr32 on COM dll x64 debug fails and can't get details on thisCOM dll x64 调试上的 regsvr32 失败,无法获取有关此的详细信息
【发布时间】:2014-04-10 09:30:47
【问题描述】:

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

它失败并出现以下错误:

模块“(...).dll”加载失败。

确保二进制文件已存储 在指定的路径或调试它以检查是否存在问题 二进制或相关的 .DLL 文件。

指定的模块不能是 找到了。

  • 已经为 VS2008 安装了 SP1(修复了一些缺少的依赖项)
  • %windir%/system32/regsvr32 或 %windir%/sysWOW64/regsvr32 失败
  • 事件查看器未显示任何相关内容(即应用程序错误)
  • SxsTrace 没有捕捉到任何东西:
    • sxstrace 跟踪 -logfile:sxstrace.etl
    • 执行 regsvr32
    • sxstrace 解析 -logfile:sxstrace.etl -outfile:sxstrace.txt
    • 检查 sxstrace.txt
  • dependency walker 不显示任何丢失的依赖项(丢失的依赖项与发布 dll 完全相同)并且 64 位发布和 64 位调试依赖项之间没有区别(除非某些调试依赖项而不是发布那些)

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

已经为此浪费了几天时间,还要等几周......!

【问题讨论】:

  • 不要再使用Depends了,很久没维护了,不适合找现代可执行文件的依赖。改用 SysInternals 的进程监视器。您会看到 regsvr32.exe 正在搜索 DLL,但没有找到它。不要将 DLL 存储在 c:\windows 目录中,文件系统重定向器会造成问题。

标签: c++ debugging dll 64-bit regsvr32


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2022-07-27
    • 2023-03-22
    • 1970-01-01
    • 2015-01-15
    • 2018-04-06
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多