Also ich glaube eigentlich nicht, bin mir aber nicht sicher, deswegen hier mal die Klasse:
Delphi-Quellcode:
Type TDLL_Datei =
class
private
bDLL_vorhanden: boolean;
sDLLName:
string;
hDLLHandle: THandle;
function DLL_vorhanden: boolean;
public
constructor create(
const sDateiName:
string);
reintroduce;
destructor Destroy;
override;
property Vorhanden: boolean
read bDLL_vorhanden;
property Handle: THandle
read hDLLHandle;
end;
constructor TDLL_Datei.Create(
const sDateiName:
string);
begin
inherited create;
sDLLName := sDateiName;
bDLL_vorhanden := DLL_vorhanden;
end;
function TDLL_Datei.DLL_vorhanden: boolean;
var DLL_Handle: THandle;
begin
try
DLL_Handle:=LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+ '
DLL\'+sDLLName));
if DLL_Handle <> 0
then
begin
hDLLHandle := DLL_Handle;
result := true;
end
else result := False
except
result := false;
end;
end;
destructor TDLL_Datei.Destroy;
begin
inherited Destroy;
end;
Also wie man sieht, lade ich dort die
DLL, aber eigentlich gebe ich sie hier nicht frei. Könnte maximal sein, dass das schließen der Klasse dies macht, wobei das ganze so im großen Projekt wie gesagt alles ohne Probleme so funktioniert.
2. Account Sero