2011-01-07 11 views
1

Ich versuche, ein in Visual Studio 2010 entwickeltes Projekt zu debuggen, und lädt VC++ 6 (VisualStudio 6) DLLs. Leider kann ich den VC++ 6 DLL-Prozess unter "An den Prozess anhängen" nicht sehen.Debuggen von App mit Visual Studio 6.0 mit Visual Studio 2010 kompiliert

Als ich im Internet suchte, fand ich den http://msdn.microsoft.com/en-us/library/cta4x5hc(v=vs.80).aspx Artikel und es schlug vor,/ASSEMBLYDEBUG beim Erstellen von VC++ 6 DLL hinzuzufügen. Aber dann bekomme ich "Kommandozeilen-Warnung D4002: ignoriere unbekannte Option '/ ASSEMBLYDEBUG'".

kann also jemand mir sagen, ob es möglich ist, einen VC++ 6 DLL von Visual Studio zu debuggen 2010

Grüße

Upu

+0

Hallo Roger, ich bin völlig neu in der Windows-Entwicklungsumgebung daher kann ich einige offensichtliche Dinge fehlen! Aber ich werde versuchen, das Problem, dem ich gegenüberstehe, zu erweitern. Ich habe eine VC++ 6 (VisulStudio6) DLL, entsprechende Interop-Datei für VC++ 6 DLL und C# -Anwendung, die mit VS2010 entwickelt wurde. VC++ 6 DLLs sind Build-Deaktivierung Optimierung und mit/ZI-Flag gesetzt. Daher haben sie die entsprechende .pdb-Datei. Die Interop-DLL hat jedoch keine .pdb-Datei wie erwartet. C# -Anwendung verwendet die Interop-DLLs !. Jetzt führe ich die C# Anwendung in VS2010 aus und versuche, Bruchpunkt in meinem VC++ 6 Code zu setzen. – user566995

+0

die Haltepunkte schlagen nicht und das ist mein Hauptproblem. Während ich C# -Anwendung ausführen überprüfe ich die C# -Anwendungsprozess bezogen DLLs von processsexplorer und dann kann ich sowohl VC++ 6 DLL und Interop-DLL sehen. Aber wenn ich die Module von VS2010 überprüfe, kann ich nur die Interop DLL und nicht die VC++ DLL sehen. gegen Introp DLL sagt es Symbole sind nicht geladen. SO lassen Sie mich bitte wissen, ob ich VC++ DLL betreten könnte. Danke – user566995

Antwort

0

Die gewohnt DLL als „Prozess zeigt "Im Debugger sind sie Teil des Prozesses, der die DLLs (dh die Hauptanwendung) lädt und verwendet.

Also ja, Sie können sie mit VS2010 debuggen, können Sie einfach die App in VS2010 geschrieben starten (oder an sie im Debugger anschließen) und Sie sollten sehen, die DLL in das geladen wird.

+0

Hallo, Danke für die prompte Antwort., Aber das Problem ist, wenn ich versuche, den Prozess anzuhängen, kann ich VC++ 6 DLL nicht sehen. Wenn ich jedoch den eProcessExplorer laufen lasse, kann ich den VC++ 6 DLL Prozess sehen. So Studio 2010 hat es nicht gesehen. Da ich eine Interop-DLL für meine ursprüngliche VC++ 6-DLL verwende, sehe ich meine ursprüngliche DLL nicht in der Modulliste. Danke Upu – user566995

+0

@ user566995 Sie sehen die DLL im optionalen unteren Bereich in ProcessExplorer? Wenn dies der Fall ist, werden nur die DLLs durch den oben hervorgehobenen Prozess geladen, kein eigener Prozess. Die DLLs sollten nicht im Prozess Teil selbst erscheinen. –

+0

Hallo, ich mache die Dinge in der Reihenfolge, starten Sie zuerst das vs2010-Projekt im Debug-Modus, dann, wenn ich diesen Prozess von ProcessExplorer auswählen, kann ich alle DLL sehen, die damit verbunden sind. Dort kann ich meine VC++ 6 DLLs sehen. Aber wie ich von VS2010 sagte, kann ich sie nicht sehen. Kann dies an der Interop DLL liegen (Dies entspricht meiner VC++ 6 DLL). Danke – user566995

1

müssen Sie nicht anhängen. Die DLL wird in den Hostprozess geladen. Starten Sie einfach das Debuggen Ihres Projekts, das die DLL lädt. Wenn Sie pdb und Quellcode der DLL haben, können Sie den Haltepunkt im DLL-Code setzen.

+0

Funktioniert nicht - der PDB für die VC6 DLL ist auch ein VC6 PDB. – MSalters

Verwandte Themen