Hallo und guten Morgen an alle
DP´ler,
Ist vieleicht gerade einfach noch zu früh am Morgen, aber irgendwie funktionieren folgende Proceduren nicht mehr wirklich, seit ich diese aus meinem Gesamtprojekt in ein kleineres und überschaubareres Projekt kopiert habe.
Hier erstmal die Proceduren:
Delphi-Quellcode:
function TP_Tisch.DLLHandle_zuweisen: boolean;
begin
//Protokoll.Protokolleingang('Piezotisch', 'DLLHandle-Fkt');
doFehlerevent(200);
try
TischDLL := TDLL_Datei.create('
E816_DLL.dll');
try
result := TischDLL.Vorhanden;
case result
of
true: DLL_Handle := TischDLL.Handle;
false:
begin
doFehlerevent(101);
DLL_Handle := 0;
end;
end;
except
doFehlerevent(201);
result := false;
end;
finally
// Beenden der Klasse
TischDLL.Free;
end;
//Protokoll.Protokollausgang('Piezotisch', 'DLLHandle-Fkt');
end;
function TP_Tisch.DLLFunktionen_laden: boolean;
begin
//Protokoll.Protokolleingang('Piezotisch', 'DLL-Fkt laden');
E816_ConnectRS232 := GetProcAddress(DLL_Handle, '
E816_ConnectRS232');
E816_CloseConnection := GetProcAddress(DLL_Handle, '
E816_CloseConnection');
E816_IsConnected := GetProcAddress(DLL_Handle, '
E816_IsConnected');
E816_MOV := GetProcAddress(DLL_Handle, '
E816_MOV');
E816_MVR := GetProcAddress(DLL_Handle, '
E816_MVR');
E816_SVO := GetProcAddress(DLL_Handle, '
E816_SVO');
E816_qPOS := GetProcAddress(DLL_Handle, '
E816_qPOS');
result := (DLL_Handle <> 0)
and assigned(E816_ConnectRS232)
and assigned(E816_CloseConnection)
and assigned(E816_IsConnected)
and assigned(E816_MOV)
and assigned(E816_SVO);
if not result
then doFehlerevent(203);
//Protokoll.Protokollausgang('Piezotisch', 'DLL-Fkt laden');
end;
Das
Handle wird Problemlos gefunden und hat auch einen Wert, allerdings läd er (obwohl es auch die richtige
DLL ist und am richtigen Ort liegt) die Funktionien im meinem kleineren Projekt nicht mehr. Im Gesamtprojekt hingegen funktioniert alles wunderbar. Grübel da jetzt gerade schon eine Stunde rum und sehe einfach keinen Grund für ein solches Verhalten.
Hoffe jemand kann mir helfen
BAMatze
[Edit] Die GetProcAddressen liefern alle nil zurück, was eigentlich nicht sein kann, da es die richtige Datei ist. Werde sie jetzt auch mal austauschen [/Edit]
2. Account Sero