喫茶XRAYトップページ

[スレッド全体
]

[6697] Delphi XE3のTDynArrayTypeInfoについて返信 削除
2013/2/5 (火) 00:32:33 Sara
みなさん、こんばんは

Delphi XE3にて、System.pas内のDynamic array supportの記述が変更になっています。

name:String[0];の記述が以下の通り name: Byte;になっています。


  TDynArrayTypeInfo = packed record
    kind: Byte;
    name: Byte; {string[0];}
    elSize: Longint;
    elType: ^PDynArrayTypeInfo;
    varType: Integer;
  end;


で、いくつか使っているコンポーネントの中に以下の記述があり、コンパイルエラーになります。

 Inc(PChar(DynArrayTypeInfo), Length(DynArrayTypeInfo.name));

このエラーを回避する方法を探しています。

まぁ、必要なソースの上部にString[0]で定義しなおすと当然コンパイルは通りますが・・・
まっとうな方法とは言えないので・・・(^^;


ご教示いただけるとありがたいです。

[6698] Re:Delphi XE3のTDynArrayTypeInfoについて返信 削除
2013/2/5 (火) 00:47:45 Mr.XRAY
▼ Saraさん,

>   TDynArrayTypeInfo = packed record
>     kind: Byte;
>     name: Byte; {string[0];}
>     elSize: Longint;
>     elType: ^PDynArrayTypeInfo;
>     varType: Integer;
>   end;


今,Delphi XE2 の定義を見たのですが,String 型になっていますね.
これは,また大胆な変更ですね.
Byte 型になったということは,Ansi 文字だけを扱うという意味でしょうね.
多分.
では,お休みなさい.
ちょっと振ってみたかっただけですよん(笑)


[6699] Re2:Delphi XE3のTDynArrayTypeInfoについて返信 削除
2013/2/5 (火) 01:00:38 Mr.XRAY
> 今,Delphi XE2 の定義を見たのですが,String 型になっていますね.

http://docwiki.embarcadero.com/Libraries/XE2/ja/System.TDynArrayTypeInfo
http://docwiki.embarcadero.com/Libraries/XE3/ja/System.TDynArrayTypeInfo

Byte なのね.PByte じゃなくて.ふ〜ん.まずい.ホントに眠い.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82