通过.NET互操作类进入COM C++代码进行调试

3

能否从C++程序中进入通过tlbimp.exe创建的.NET互操作层使用的COM C++代码?我看到COM C++ dll的符号加载在Debug->Modules窗口中。


1
不,调试器不允许步入从托管代码执行切换到本机代码执行或反之的代码。您需要在被调用方法上设置断点。在C# exe项目中启用非托管调试以允许其工作,在本机项目中使用混合模式。 - Hans Passant
同时提醒一下,在“附加到进程”对话框中仔细检查代码类型,然后通过在复选框中选择托管和本机代码类型来手动设置“附加到”字段。请参阅https://dev59.com/N3E85IYBdhLWcg3w_Itr,并查找Raphaël Saint-Pierre在已接受答案的评论中的参考。 - Jerameel Resco
1个回答

7

这是可能的,但您需要在项目属性中将Visual Studio调试器设置为混合模式。此选项位于 项目属性->配置属性->调试->调试器类型 下方。


之前它被设置为“自动”,然后我将其设置为“混合”。它正在工作! - TrustyCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接