Delphi-Quellcode:
function lou_translateString(
tableList: PAnsiChar; // const char *tableList
inbuf: PWideChar; // const widechar *inbu
var inlen: Integer; // int *inlen
outbuf: PWideChar; // widechar *outbuf
var outlen: Integer; // int *outlen
var typeform: formtype; // formtype *typeform
spacing: PAnsiChar; // char *spacing >> ODER var spacing: AnsiChar
mode: Integer // int mode
): Integer; stdcall;
external 'liblouis.dll';
Referenzen dort übergeben, wo auch
*Referenzen verlangt sind (z.B. spacing ist eine Referenz)
und Wide (
Unicode) dort, wo auch Wide verlangt wird (inbuf/outbuf wind WIDE)
Was EXPORT_CALL ist, wissen wir nicht, aber bist du dir sicher dass es stdcall und nicht vielleicht cdecl ist?
Und PS: bitte [CODE]dein Code[/CODE] oder [DELPHI]dein Code[/DELPHI] damit man es besser lesen kann.
lou_translate... scheint keine eigene Error-Methode ala lou_GetLastError zu haben, also könntest du auch einfach mal machsehn ob sie GetLastError des Windows bentzen.
http://liblouis.org/documentation/liblouis.html
Delphi-Quellcode:
SetLastError(ERROR_FILE_INVALID); // 0 oder irgendein Fehler, um zu sehen ob es überhaupt verändert wurde
x := lou_translateString(...);
if x = 0 then
RaiseLastOSError; //Show(GetLastError)
PS:
Zitat:
The function returns 1 if no errors were encountered2 and 0 otherwise.
Statt Int/Integer könnte man hier auch direkt LongBool verwenden. (True = OK)