【发布时间】:2010-11-23 00:40:52
【问题描述】:
最近,我从一位客户那里得到了一个故障转储文件。我可以将问题追溯到一个可能包含不正确数据的类,但我只有一个指向该类的空指针,而不是一个真正的指针(空指针来自窗口属性,因此它是一个空指针) . 不幸的是,我想将指针转换到的类位于匿名命名空间中,如下所示:
namespace
{
class MyClass
{
...
};
}
...
void *ptr = ...
// I know ptr points to an instance of MyClass,
// and at this location I want to cast ptr to (MyClass *) in the debugger.
当我在监视窗口中使用ptr 时,Visual Studio 2005 只显示指针值。
如果我使用(MyClass *)ptr,调试器会告诉我它不能强制转换。
如何将ptr 转换为MyClass 指针?
注意:我最终可以使用一个愚蠢的命名空间(如源文件的名称),然后使用“使用命名空间”,但我希望有更好的解决方案。
【问题讨论】:
-
顺便说一句,VS 2008 也出现了同样的问题。我建议给 MS 自己发个便条。
标签: c++ namespaces debugging