Hallo,
ich wollte jetzt nicht den x ten Thread zur TSE Programmierung eröffnen und der Code der hier geschrieben wurde sieht schwer nach A-Trust aus
Bei mir sieht die ganze Sache komplett anders aus.
Delphi-Quellcode:
function TSE_readLogMessage(var logMessage: TBytes; var logMessageLength: LongWord): ShortInt; stdcall; external 'fremdedll.dll' name 'readLogMessage';
procedure SaveBytesToFile(const Data: TBytes; const Len: LongWord; const Filename: String);
var
Stream: TFileStream;
begin
Stream := TFileStream.Create(Filename, fmCreate);
try
if Data <> nil then
Stream.WriteBuffer(Data[0], Len);
finally
Stream.Free;
end;
end;
procedure ReadLogMessage(BinFilename: String);
var
res: ShortInt;
log: TBytes;
len: LongWord;
begin
log := nil;
len := 0;
res := TSE_readLogMessage(&log, &len);
setLength(log, len);
SaveBytesToFile(log, len, BinFilename);
end;
Ich bekomme da genau so einen Quark raus, wie bei dem JAVA Beispiel.
Das einzige was richtig funktioniert sind die ganzen ExportDataFilteredByxxxxx funktionen. Start und FinishTransaction war auch nicht so kritisch. Wo ich komplett auf dem Schlauch stehe sind die Rückgabewerte. Nirgens ist definiert was z.B ERROR_START_TRANSACTION_FAILED für einen Wert hat.
Es gibt ein C Beispiel mit header dateien, in diesen stehen negative Rückgabewerte für die Konstanten z.B -5001. Ich bekomme als Rückgabe entweder eine 0 oder z.B 116. Hat da jemand eine Idee?