我正在Delphi 2010中的一個DLL上工作。它導出一個接收變體數組的過程。我希望能夠採取這些變種之一,並將其轉換成一個字符串,但我一直越來越?????Delphi 2010變種unicode問題
我無法更改輸入變量 - 它必須是一個變量數組。 調用DLL的宿主應用程序無法更改。這是寫在2006年德爾福
樣品DLL的代碼:
Procedure TestArr(ArrUID : array of variant); stdcall;
var
i: integer;
s: string;
begin
s:= string(String(Arruid[0]));
showmessage(s);
end;
使用D2006我的DLL工作正常。我曾嘗試使用VartoStr
- 沒有運氣。當我檢查VarType
我得到varString
。任何建議如何解決這個問題?
您無法使用ShareMem解決與Unicode/Ansi相關的D2006和D2010之間的問題。他們使用完全不同形式的內存管理器。 – 2011-03-17 02:53:14
@肯白你是對的,我的錯。我忘記了embarcadero也改變了內存管理器(現在它使用fastmm)。 – 2011-03-17 03:00:51