Есть udf честно прослужившая много лет на win32 (писалась на delphi 7).
Перекомпилировал её под x64 на delphi xe2 для работы с fb2.5 x64.
Вроде работает - не ругается, но вместо выходных строк выдаёт только первый символ.
В чём проблема: в x64 или в дельфийском юникоде?
вот простой примерчик
function MyFunc: PChar; cdecl; export;
var
s: string;
begin
s := IntToStr(100 + Random(1000));
Result := ib_util_malloc(Length(s) + 1);
StrPCopy(Result, s)
end;
DECLARE EXTERNAL FUNCTION MYFUNC
RETURNS CSTRING(128) FREE_IT
ENTRY_POINT 'MyFunc' MODULE_NAME 'MY_UDF.DLL'