Ваше хост-приложение отправляет AnsiString
, и вы ожидаете, что UnicodeString
.
Строки Unicode были введены в Delphi 2009, их нет в Delphi 2006. Как это исправить? Попробуйте [не проверено]:
Procedure TestArr(ArrUID : array of variant); stdcall;
var
i: integer;
s: AnsiString;
begin
s:= Ansistring(VarToStr(Arruid[0]));
showmessage(s);
end;
или, может быть, [также не проверено]:
Procedure TestArr(ArrUID : array of variant); stdcall;
var
i: integer;
s: AnsiString;
begin
s:= Ansistring(AnsiString(Arruid[0]));
showmessage(s);
end;
Вы также можете проверить, есть ли функция, подобная VarToStr
, которая принимает AnsiStrings
(может быть, в AnsiStrings
единице?).