德尔福错误:缺少' @ VarFromLStr'在iOS模拟器下

时间:2014-11-05 12:56:14

标签: delphi

编译简单测试时出现此错误[DCC Fatal Error] UnitUtf8.pas(52): E2158 System.Variants unit out of date or corrupted: missing '@VarFromLStr'

var
  S_ENG_UP: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  S_ENG_LO: string = 'abcdefghijklmnopqrstuvwxyz';
  ...
const
  NullValue = 'NullValue';


implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var
  i, j: integer;
  s: string;
  TestData: Variant;
begin
  TestData := VarArrayOf([
      VarArrayOf([NullValue, UTF8Encode(S_ENG_UP), UTF8Encode(S_ENG_UP), S_ENG_UP, S_ENG_UP]),
      VarArrayOf([NullValue, UTF8Encode(S_ENG_LO), UTF8Encode(S_ENG_LO), S_ENG_LO, S_ENG_LO]),
      VarArrayOf([NullValue, UTF8Encode(S_RUS_UP), UTF8Encode(S_RUS_UP), S_RUS_UP, S_RUS_UP]),
      VarArrayOf([NullValue, UTF8Encode(S_RUS_LO), UTF8Encode(S_RUS_LO), S_RUS_LO, S_RUS_LO])
    ]);
  for i := VarArrayLowBound(TestData, 1) to VarArrayHighBound(TestData, 1) do
    for j := VarArrayLowBound(TestData[i], 1) to VarArrayHighBound(TestData[i], 1) do begin
      s := VarToStr(TestData[i][j]);
      Memo1.Lines.Add(s);
    end;
end;
适用于iOS模拟器平台的XE6和XE7下的

。但Win32 / 64下一切都很好。无法找到解决方案,而且似乎一切都是"按照预期"因为我在XE6 / 7下都有它。我应该重新编译System.Variants(如何?)或有一些解决方法?第二次构建尝试给了我[DCC Fatal Error] UnitUtf8.pas(52): F2084 Internal Error: AV08603536-R00000004-0。我需要完全测试Variant数组,因为我应该检查为什么另一个自定义(可能是自Delphi 5以来为兼容性而制作的一些旧版UTF8Encode的副本)在Windows和iOS模拟器下给我不同的国家代码页结果(是的,它在UTF8Encode之后是垃圾,但它是不同的垃圾)。

0 个答案:

没有答案