Vor kurzem erhielt ich von einem Kunden eine Crash-Dump-Datei. Ich konnte das Problem auf eine Klasse zurückführen, die fehlerhafte Daten enthalten könnte, aber ich erhielt nur einen void-Zeiger auf die Klasse, keinen echten Zeiger (der void-Zeiger stammte von einer Window-Property, daher war es ein void-Zeiger). Leider befand sich die Klasse, auf die ich den Zeiger casten wollte, in einem anonymen Namespace, wie hier:
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.
Wenn ich die ptr
im Überwachungsfenster, zeigt Visual Studio 2005 nur den Zeigerwert an. Wenn ich (MyClass *)ptr
sagt mir der Debugger, dass er nicht darauf zugreifen kann.
Wie kann ich die ptr
zu einer MyClass
Zeiger?
Hinweis: Ich könnte eventuell einen Namensraum mit einem dummen Namen verwenden (wie den Namen der Quelldatei) und dann einen "using namespace" verwenden, aber ich würde bessere Lösungen erwarten.