【发布时间】:2015-02-22 10:55:10
【问题描述】:
这里是场景。我正在使用 Visual Studio 2010。我有一个 C++ COM dll。此 dll 由另一个不是 COM 项目的 C++ dll 项目使用。第二个 dll 向客户端应用程序公开 API。依赖是Client->Non-COM dll->COM dll。我想从任何客户端应用程序调试 COM dll。
这是我已经尝试过的东西。
- 创建了一个使用非 COM dll 的 C++ win32 控制台应用程序。
- 将 COM dll 和非 COM dll 以及相应的 pdb 文件保留在 win32 应用程序的调试目录中。在选项->调试->符号中,我选择了调试目录的路径并选中“仅指定模块”选项来加载这些文件。
- 设置所有包含和库依赖项。
- 现在,我可以成功运行应用程序了。但是在调试时,我只能通过按 F11 导航到非 COM dll,并且从该 dll 到 COM dll 的相同 F11 导航不起作用。
- 当我尝试使用两个非 COM dll 和一个客户端应用程序时,我可以导航到最里面的 dll。此时,我意识到我应该将相应的注册表项更改为指向我位于客户端应用程序调试目录中的 COM dll 文件,但没有运气!
很抱歉我不能分享代码或详细描述。
有什么解决办法吗?
【问题讨论】:
-
最简单的解释是你没有成功创建COM对象。调试 + Windows + 模块,确保您看到那里列出的 COM dll。右键单击它并选择“符号加载信息”以查看调试器在何处查找 PDB 文件。
标签: c++ visual-studio-2010 dll com