2009-07-15 102 views
2

更新:更多挖掘后,这似乎是静态方法和成员变量的问题。我在MSDN论坛上找到了this post,但没有回答。混合模式调试

我正在写一个C#WinForms应用程序(.Net 2.0)与混合模式DLL都在同一个解决方案。当我在调试时进入本地代码时,我无法“观察”许多指针变量。这似乎是一个奇怪的现象,因为一些指针是有看头(我想这是一个字:))

例如:

Connection* Connection::Instance() 
{ 
    if (innerConnection == NULL) 
    { 
     innerConnection = new Connection(); 
    } 

    return innerConnection; 
} 

虽然通过这种方法innerConnection步进不提供给我。在监视窗口中的值是“error:identifier'innerConnection'超出范围”。内部连接不应超出范围。

同样在该示例中“汽车”的窗口“本”具有

C#的项目被设定为启动项目和它引用的C++ dll项目(全在同一溶液中)。我在C#项目中启用了本地调试,并在C++/CLI项目中将调试模式设置为Auto。我使用Visual Studio 2005

回答

2

在我的情况下(原生EXE - >混合DLL - >托管程序集(所有Visual Studio 2008))我必须将可执行文件的调试模式设置为“混合”。使用默认的“自动”设置,我无法进入托管程序集。

+1

请参阅:http://msdn.microsoft.com/en-us/library/kbaht4dh.aspx,了解如何进行混合模式调试 – 2011-04-27 12:49:18