Kleines Update:
Ich teste ja fleißig und probiere verschiedene Methoden.
Mir ist aufgefallen, dass bei den beiden Zugriffsmöglichkeiten auf die
DLL bei verschiedenen Adressen die Zugriffsverletzung eintritt.
Bei der ersten Variante über
Delphi-Quellcode:
initialization
if DllHandle = 0 then begin
DllHandle := LoadLibrary('ProjectDLL.dll');
if DllHandle > 0 then begin
TestProc := GetProcAddress(DllHandle, 'TestProc');
DllHandle := LoadLibrary('ProjectDLL.dll');
End else begin
MessageDlg('ProjectDLL.dll steht nicht zur Verfügung', mtInformation, [mbOK], 0);
end;
end;
finalization
if DLLHandle <> 0 then
FreeLibrary(DLLHandle)
kommt der Fehler:
"Zugriffsverletzung bei Adresse 047E30E3 in Modul 'ProjectDLL.dll'. Lesen von Adresse 000000B0"
Während bei der Methode:
procedure TestProc; external 'ProjectDLL.dll' name 'TestProc';
die Meldung:
"Zugriffsverletzung bei Adresse 02A630E3 in Modul 'ProjectDLL.dll'. Lesen von Adresse 000000B0"
kommt.