Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Anderes Programm zwingen, DLL zu entladen (https://www.delphipraxis.net/422-anderes-programm-zwingen-dll-zu-entladen.html)

OregonGhost 18. Jul 2002 14:35


Anderes Programm zwingen, DLL zu entladen
 
Folgendes Problem: Ich entwickle derzeit ein Add-In für Microsoft Visual C++, und zwar in Visual C++ (na sowas).
Dieses ist als DLL realisiert. Wenn ich die DLL kompiliert habe, aktiviere ich das Addin einfach und kann es testen. Wenn ich es erneut kompilieren möchte, muss ich es vorher deaktivieren, logisch.
Wenn ich es jetzt aber kompiliere mosert der Linker rum, dass er die Datei nicht zum Schreiben öffnen kann - ergo ist sie noch von Visual C++ geöffnet bzw. wurde nicht entladen. Ein Neustart von Visual C++ behebt das Problem.

Jetzt meine Frage: Wie bringe ich Visual C++ dazu, meine DLL (die es definitiv nicht mehr benötigt, weil das Addin deaktiviert ist), zu entladen?

Egal ob per API oder Registry oder über miese Tricks, Hauptsache es geht sonst krieg' ich noch eine Krise...

d3g 18. Jul 2002 14:55

Hi OregonGhost,

vielleicht (!) kann dir dieses Prog helfen (ist auch mit C++-Source):
http://www.codeguru.com/dll/LoadDll.shtml

MfG,
d3g

OregonGhost 19. Jul 2002 09:59

Ich werd's mir anschauen, danke schonmal - könnte das richtige sein.

Christian Seehase 19. Jul 2002 10:37

Moin Oregon Ghost,

die für das genannte Beispiel notwendige Funktion CreateRemoteThread steht allerdings nur auf der NT Schiene zur Verfügung.
9x/ME enthalten diese Funktion nicht.

sakura 19. Jul 2002 11:33

Wenn ich das Gleiche für Delphi mache, gibt es genau das Problem. Ein mögliche Lösung ist folgende:
  • Plug-In deaktivieren
  • VC++ starten (Plugin nicht geladen)
  • Plugin aktivieren
  • Plugin programmieren/ändern
  • neue VC++ Instanz starten und testen
  • 2. VC++ Instanz schließen
  • weiter programmieren
  • wieder VC++ Instanz starten
  • ...
Wenn VC++ das unterstützt, dann ist das der wohl effektivste Weg, da die Plugins nur beim Starten geladen werden...
:cat:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz