Delphi-Quellcode:
library DLLTest2;
uses
SysUtils,
Classes,
Unit2 in 'Unit2.pas' {Form2};
Procedure Anzeigen;
var Form : TForm2;
BEGIN
Form2 := TForm2.Create(NIL);
Form2.Starten;
end;
exports
Anzeigen;
begin
end.
Aufgerufen wird die
DLL wie folgt:
Delphi-Quellcode:
Procedure TForm1.Zeige_PlugIns(Dateiname:
string;
Name:
string);
var
PlugIns:TPlugIns;
Handle : THandle;
BEGIN
Handle := LoadLibrary(PCHAR(ExtractFilePath(ParamStr(0)) + '
\PlugIns\' + Dateiname));
IF Handle <> 0
THEN
BEGIN
@PlugIns := GetProcAddress(
Handle, PCHAR(
Name));
IF @PlugIns <>
NIL THEN
PlugIns
ELSE
Showmessage('
Fehler beim Laden der Datei "'+Dateiname+'
"');
END;
FreeLibrary(
Handle);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
zeige_DLL('
DLLtest2.dll','
Anzeigen')
end;
Als fehler bekomme ich nun : "Zugriffsverletzung bei Adresse 01E61FAB in Modul 'DLLtest2,
dll'. Lesen von Adress 00000000."
Aber nur bei der oben genannten zeile.
mfg
Tommy82