我已经阅读了SO上提供的解决方案,但到目前为止还没有解决我的问题。我的启动项目是一个非托管的C ++项目(我们称之为TestWrapper)。目标是让TestWrapper调用托管C ++项目,然后调用我的C#项目。这工作正常,我没有遇到任何问题。
但是,我的C#代码中出现了异常。由于某种原因,断点不会被击中,实际的调试中断发生在ntdll.dll
内。我试图右键单击C#项目并启用非托管调试,但这不能解决问题。如果有人能指出我的解决方案,我将非常感激。
我要继续并包含项目布局:
TestWrapper (unmanaged C++) -> ManagedWrapper (managed C++) -> MyCSharpProject (C#)
我有一种感觉,它在于调试的配置,但我知道甚至不知道从哪里开始看。
答案 0 :(得分:7)
如果调试器调试本机,托管或本机+托管代码,调试器必须决定启动。因此,您必须更改启动项目上的调试器设置,而不是您遇到问题的DLL。请尝试以下
调试器设置甚至包含在Visual Studio中的DLL项目中有点误导。它对系统没有任何影响。
答案 1 :(得分:1)
一个想法可能是从C#环境调试应用程序。如果您正在使用express,可以通过在csproj文件中添加几行来设置启动应用程序
<StartAction>Program</StartAction>
<StartProgram>..path to your app..</StartProgram>