プロジェクトを Delphi 4 から Delphi XE2 に移植しようとしています。shortstring
プロジェクトで使用する要件があります。Delphi ヘルプによると、$H- は、コンパイラがstring
型に短い文字列を使用するようにする必要があります。このディレクティブを使用しましたが、違いはありません。私は小さなテストプログラムを書きました:
program Stringtest;
{$APPTYPE CONSOLE}
{$R *.res}
{$H- }
uses
System.SysUtils;
var
str : string;
short : shortstring;
begin
try
str := 'testing';
short := 'testing';
Writeln('str ' +Format('%d', [sizeOf(str)]) );
Writeln('short ' +Format('%d', [sizeOf(short)]) );
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
私の意見では、出力は両方で同じである必要がありstr
、short
コンパイラは両方をshortstring
. ただし、サイズは 4str
と 256 ですshort
。ソースコード内のすべての出現を置き換える唯一の解決策 として、コンパイラに処理string
させる他の方法はありますか?shortstring
string
shortstring