2009-04-29 10 views
4

Ich bin mit Visual Studio 2008 (unter Windows 2003 Server/32-Bit), eine Bibliothek zu kompilieren und nach der DLL wird die erzeugte "Build Benutzerdefinierte Step" -> "Allgemein" führt eine Befehlszeile ein:Wie debuggen Regsvr32 nach der Kompilierung DLL Registrierung Ausnahme?

regsvr32/s/c "($ TargetPath)"

, die die Ausnahme erzeugt:

Eine nicht behandelte Ausnahme aufgetreten Win32 in regsvr32.exe [212].

Dies wirft eine Debugsitzung auf, die bemerkenswert wenig Information zeigt.

Das Ausführen der Regsvr32 von der Befehlszeile in einem Cmd-Fenster löst eine Ausnahme aus (obwohl die Zahl am Ende unterschiedlich ist).

Alle Hinweise geschätzt!

+0

Die Zahl in eckigen Klammern am Ende der Ausnahmemeldung zu diesem Zeitpunkt an den Prozess anhängen ist die PID (Prozess-ID) von regsvr32.exe. – amolbk

Antwort

10

Führen Sie die DLL im Debugger, setzen Sie Regsvr32 als Debug-Ziel.

Sie möchten einen Haltepunkt in der Funktion DllRegisterServer platzieren.

+0

Hehe, ich dachte, das wäre offensichtlich! :) – leppie

+0

@leppie: :-) Nicht zu mir! Ich hätte gedacht, dass die automatische Debug-Sitzung die gleichen Informationen anzeigen würde, was nicht der Fall ist. –

+0

@gbjbaanb Danke! Das zeigt viel mehr Informationen ... obwohl aus irgendeinem Grund die DllRegisterServer-Funktion nicht aufgerufen wird. –

-1

Code sollte DllRegisterServer implementieren, fügen Sie eine MessageBox, und beim Ausführen von regsvr32 es getroffen werden sollte,

+0

Nein. Wie ich in den Kommentaren zur angenommenen Antwort (im April 2009!) Gesagt habe, wurde 'DllRegisterServer' nie aufgerufen, also würde Ihre Lösung nicht funktionieren. –

Verwandte Themen