C++Builder2009とDelphi2009のUnicodeStringの挙動の違い

C++Builder2009では、UnicodeStringからRawByteStringへ、
または反対にRawByteStringからUnicodeStringへ代入をした場合、
代入された値はNULLになります。

RawByteString raw = "123";
UnicodeString uni = raw; //uniはNULL

UnicodeString uni = "123";
RawByteString raw = uni; //rawはNULL

一方、Delphi2009では、代入された値が入ります。
# 警告が出ます。

var
  raw: RawByteString;
  uni: UnicodeString;
begin
  raw := '123';
  uni := raw; //uniは123

  uni := '123';
  raw := uni; //rawは123

C++Builder利用者がDelphi向けの文書を読むときは、
この違いに気をつける必要があります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください