以下是该方案。我正在使用Visual Studio 2010.我有一个C ++ COM DLL。这个DLL由另一个不是COM项目的C ++ DLL项目使用。第二个dll将API暴露给客户端应用程序。依赖性是Client-> Non-COM dll-> COM dll。我想从任何客户端应用程序调试COM DLL。
以下是我已经尝试过的事情。
很抱歉,我无法分享代码或详细描述。
任何解决方案?
答案 0 :(得分:1)
您可以在COM dll源代码中设置断点,然后将其附加到名为' dllhost.exe
'的流程中。每当本机dll调用COM dll时,断点就会命中。
答案 1 :(得分:0)
将COM dll项目设置为启动项目。右键单击该项目。导航到Properties-> Configuration Properties-> Debugging-> Command。输入客户端应用程序的完整路径。 例如:C:\ Users ... \ Debug \ ClientApplication.exe。
通过命令 regsvr32" pathToCOMDll" 以管理员身份运行Windows命令提示符注册COM dll。断点将被击中。 例如:regsvr32" C:\ Users ... \ COMDll.dll"其中COMDll.dll是COM dll。什么dll引用什么dll应该没关系。
注意:避免直接编辑Windows注册表并尝试使用regsvr32命令。