更新:在进行更多挖掘之后,这似乎是静态方法和成员变量的问题。我在MSDN论坛上找到了this post,但没有回答。
我正在使用混合模式dll在同一解决方案中编写C#WinForms应用程序(.Net 2.0)。当我在调试时进入本机代码时,我无法“观察”许多指针变量。这似乎是一种奇怪的行为,因为有些指针是可观察的(我猜这是一个词:))
例如:
Connection* Connection::Instance()
{
if (innerConnection == NULL)
{
innerConnection = new Connection();
}
return innerConnection;
}
虽然单步执行此方法,但我无法使用innerConnection。监视窗口中的值为“error:identifier'innerConnection'超出范围”。内部连接不应超出范围。
同样在“Autos”窗口的这个例子中,“this”有
C#项目被设置为启动项目,它引用了C ++ dll项目(All在同一个解决方案中)。我在C#项目中启用了本机调试,并在C ++ / CLI项目中将调试模式设置为Auto。我正在使用Visual Studio 2005
答案 0 :(得分:2)
在我的情况下(原生EXE - >混合DLL - >托管程序集(所有Visual Studio 2008))我不得不将可执行文件的调试模式设置为'Mixed'。使用默认的“自动”设置,我无法进入托管程序集。