.. nicht in der
DLL nur im Thread. Der Thread soll die
DLL benutzen.
DLL:
Delphi-Quellcode:
procedure ParseDeviceParameters(const aText: PChar; Parameters: TDeviceParameterList)
.
.
exports
ParseDeviceParameters
.
.
TParser, instanziert im Thread:
Delphi-Quellcode:
FDLL:
string;
FMasterDeviceDLLHandle: THandle;
procedure LoadDLL;
.
.
constructor TParser.Create(aDLL:
string);
begin
inherited Create;
FMasterDeviceDLLHandle:= 0;
FDLL:= aDLL;
LoadDLL;
end;
procedure TParser.LoadDLL;
begin
FMasterDeviceDllHandle:= LoadLibrary(PChar(FDLL));
if FMasterDeviceDllHandle <> 0
then begin
FParseDeviceParameters:= GetProcAddress(FMasterDeviceDllHandle, '
ParseDeviceParameters');
.
.
end
else
begin
raise Exception.Create('
DLL ' + QuotedStr(FDLL) + '
konnte nicht geladen werden.');
end;
end;
procedure TParser.ParseDeviceParameters(aText: PChar; ParameterList: TDeviceParameterList);
begin
FParseDeviceParameters(aText, ParameterList);
end;
Aus dem Thread:
FParser.ParseDeviceParameters(PChar(FResponseText), FDeviceParameterList);