更新:经过更多的挖掘,这似乎是静态方法和成员变量的问题。我在MSDN论坛上找到了this post,但没有答案。
我在同一解决方案中编写了带有混合模式dll的C#WinForms应用程序(.Net 2.0)。当我在调试时进入本机代码时,无法“观察”许多指针变量。这似乎是一种奇怪的行为,因为某些指针是可观察的(我想这是一个词:))
例如:
Connection* Connection::Instance()
{
if (innerConnection == NULL)
{
innerConnection = new Connection();
}
return innerConnection;
}
在逐步执行此方法时,innerConnection对我不可用。在监视窗口中,此值是“错误:标识符'innerConnection'超出范围”。内部连接在此不应超出范围。
同样在此示例中,在“汽车”窗口中,“此”具有
C#项目被设置为启动项目,并且它引用了C ++ dll项目(全部在同一解决方案中)。我在C#项目中启用了本机调试,并在C ++ / CLI项目中将调试模式设置为Auto。我正在使用Visual Studio 2005
最佳答案
就我而言(本机EXE->混合DLL->托管程序集(所有Visual Studio 2008)),我不得不将可执行文件的调试模式设置为“混合”。使用默认的“自动”设置,我无法进入托管程序集。