debug attach to process (Excel)
-
Hallo zusammen!
Ich würde gerne eine DLL, die ich von VBA aus aufrufe, Debugen.
Dabei habe ich das VBA script gestartet und anschließen im Visual Studio 2005 "Attach to process" gewählt. Eigentlich hatte ich erwartet, dass das so funktioniert, da ich das beim Debugen von DLLs, die von normalen C-Programmen ausgeführt werden, auch so vorgehe. Von VBA aus scheint das aber irgenwie nicht zu funktionieren.
Das Declare in VBA sieht so aus:
Private Declare Function TestFunc Lib "Test.dll" Alias "?TestFunc@@YGHH@Z" (ByVal val As Long) As LongDie DLL ist in C++ übersetzt und die Funktion hat die Aufrufkonvention __stdcall, da das von Excel so verlangt wird.
Hat da jemand von euch bereits Erfahrung damit? Ist das Überhaupt möglich was ich versuche?
Für Hilfe wäre ich sehr dankbarmfg Tom
-
Setze in Deiner Funktion einen Haltepunkt und drücke einfach mal F5. Danach sollte Visual Studio nach der zu debuggenden Anwendung fragen, hier gibst Du den Pfad zu Excel an. Wenn Excel dann Deine Funktion aufruft, sollte der Debugger anhalten.
Wichtig ist aber, dass Excel genau die Dll lädt, die Du mit dem Projekt erstellt hast.
-
Danke für die Antwort. Eine Frage hätte ich aber noch.
Muss Excel genau die DLL aufrufen oder reicht es wenn es die gleiche DLL-Version ist? Wenn ich die DLL erzeuge kopiert ein POST-LINK Kommando die DLL in ein anderes Verzeichnis, das in der Pfadvariable enthalten ist. Diese DLL lädt dann Excel.Gruß Tom
-
Es muss die Datei aus diesem Build sein, und die pdb Datei sollte im selben Verzeichnis liegen. Dann solltest Du ohne probleme debuggen können.
Schau Dir die Modul-Liste an in den Debugfenstern, das hilft oft und klärt einige Problem wann, was, wie geladen wird.