2012-03-27 16 views
1

Ich versuche, einige Probleme in einer nativen C++ - COM-DLL, die ich erstellt habe, zu debuggen, und möchte den Visual Studio (2008) -Debugger von diesem starten. Diese DLL wird von einer anderen DLL, die mir gegeben wurde, aufgerufen, so dass mein Code grundsätzlich in eine andere Anwendung passt. In der Vergangenheit hatte ich C# verwendet, um diese DLL zu erstellen und konnte die Methode System.Diagnostics.Debugger.Break() verwenden. Gibt es etwas Ähnliches, das verwendet werden kann? Ich habe ein paar Posts über DebugBreak und __debugbreak gesehen, aber das schien nicht zu funktionieren, es schien nur, dass ich meinen Code nicht mehr ausführen konnte.Debugger in C++ - Code starten

EDT: Ich habe den Rat von paulsm4 gefolgt unten und stellte fest, dass die Haltepunkte nicht funktioniert, würde es mir sagen: „Der Haltepunkt wird derzeit nicht getroffen werden keine Symbole wurden für dieses Dokument geladen.“

Antwort

1

Idealer Sie haben die Projektquelle für Ihre COM/ActiveX-DLL.

Wenn das der Fall ist, legen Sie einfach einen Haltepunkt in Ihrem DLL-Code, führen Sie Ihr Programm im Debugger ... und das ist es.

Bitte beachten Sie die Unterscheidung zwischen "verwaltetem Code" (z. B. eine C# /. NET. Exe oder. DLL) und "nativen Code" (wie Ihre COM/ActiveX. DLL). Zum Debuggen „native Code“ unter MSVS2008, müssen Sie „Mischbetrieb“ angeben:

http://msdn.microsoft.com/en-us/library/kbaht4dh%28v=vs.90%29.aspx

+0

Dank für die Informationen. Ich werde es versuchen. Ich habe den Quellcode für die COM-DLL, aber sonst nichts. Ich bin neu in der Verwendung des Visual Studio-Debuggers, also habe ich hier eine große, dumme Frage, wie führe ich das Programm im Debugger aus. Wenn ich es für ausführbare Dateien verwendet habe, die ich geschrieben habe, beginne ich einfach zu debuggen, aber ich weiß nicht, wie ich diese andere Anwendung damit starten soll. – Travis

+0

Ok, ich denke, dass ich diesen Teil herausfinde, indem ich ihn zum Debugger-Befehlspfad für mein Projekt hinzufüge. Ich werde es versuchen. – Travis

+0

Ich habe gerade festgestellt, dass das komplizierter sein könnte, als ich dachte. Beim Debugging habe ich festgestellt, dass die DLL, die meine DLL aufruft, nicht von der Anwendung gestartet wird, sondern von einem Dienst, der von der Anwendung gestartet wird. Muss ich den Debugger irgendwie darauf aufmerksam machen? – Travis

Verwandte Themen