Hallo
DP,
seit Neustem habe ich ein Problem mit meinem Delphi 7. Und zwar:
Ich schreibe an einem Programm, welches DLLs benutzt, nämlich meine eigenen.
Beide "Programm-Teile", die Application und die
DLL benutzen Funktionen aus den gleichen Units.
Wenn ich die Application erstelle, über "Projekt erstellen", erzeugt der Compiler die DCUs und legt sie in den gleichen Ordner, wo auch die
PAS-Dateien liegen.
Starte ich die Application und lade meine
DLL mittels
LoadLibrary bekomme ich ein
Handle zurück mit dem ich später mein
DLL-Funktionen einbinden kann. Klappt soweit alles prima.
Wenn nun aber die
DLL compiliere, verwendet der Compiler (oder der Linker, weiß ich nicht) nicht die
PAS-Dateien, sondern die bereits compilierten
DCU-Dateien. Ich denke das ist von Seiten Delphi auch gewollt so und prinzipiell auch erst mal nicht falsch.
Lade ich nur die
DLL, die mit Hilfe der
DCU's erstellt worden ist, wieder mit
LoadLibrary, erhalte ich als
Handle 0 zurück.
Erst wenn ich die DCUs lösche und die
DLL erneut compiliere kann ich in meiner Application die
DLL wieder korrekt laden.
Gibt es einen Grund dafür? Habt ihr das schon erlebt?
Könnten unterschiedliche Compiler-Einstellungen der Grund dafür sein? (Obwohl ich in beiden "Teilen" die gleichen Einstellungen verwende)
Komisch! ... und nervig!
Auf Antwort hoffend,
gmc