Hallo,
Ich habe hier irgendwie ein Problem mit DLLs (oder ist tatsächlich der Compiler dran schuld?).
Folgender DLL-Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| library Project1;
uses Dialogs;
begin ShowMessage('Hello, world'); end. |
Kompilieren, und dynamisch einbinden (mit LoadLibrary) klappt einwandfrei. Jetzt will ich aber nicht, daß die Message angezeigt wird, also kommentiere ich die Zeile aus:
Delphi-Quelltext
.
Kompilieren klappt immer noch, aber LoadLibrary erzeugt den Fehlercode 127, welcher auf Deutsch besagt: "Die angegebene Prozedur wurde nicht gefunden.".
Egal
was ich in der DLLMain() mache (die ja hinter dem begin-end einer library steckt), solange ich überhaupt was mache, funktioniert es, lasse ich die DLLMain leer, will er nicht mehr (dabei steht sogar im SDK, daß DLLMain() nur optional ist).
Das Modulhandle, daß von LoadLibrary zurückgegeben wird, ist seltsamerweise trotzdem gütig (nicht 0 und die Funktionen lassen sich auch importieren), aber trotzdem hätte ich gerne eine DLL, die mit meinem C-Debugger funktioniert, denn der weigert sich nach LoadLibrary weiterzulaufen.
Außerdem hätte ich gerne DLLs, die keine Fehler verursachen *g*
Ein leerer begin-end-Block wird sogar in einem Beispiel aus der Delphi-Onlinehilfe verwendet und ich brauche für meine DLL keine Initialisierung, welche Möglichkeiten gibt es also in Delphi, eine DLL ohne Initialisierung zu schreiben?
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk.