Delphi/C++BuilderのFileOpen関数の戻り値の型が変更されていた

Delphi/C++BuilderのFileOpen関数の戻り値の型が変更されていた。

Delphiでは、Delphi XE2から戻り値の型がInteger(XE以前)からTHandle(XE2以降)に変更されている。

C++Builderではint(XE以前)からunsigned(XE2)、NativeUInt(XE3以降)へと変更されている。

ヘルプを見るとエラーを示す値は-1のままのようで、整合性がとれていない。(THandle型やNativeUInt型は負数にならない)

戻り値が -1 の場合は,エラーが発生したことを示します。

System.SysUtils.FileOpen – RAD Studio API Documentation」より

Delphi

Delphi 2010

function FileOpen(const FileName: string; Mode: Cardinal): Integer;

Delphi XE

function FileOpen(const FileName: string; Mode: LongWord): Integer;

Delphi XE2

function FileOpen(const FileName: string; Mode: LongWord): THandle;

Delphi XE3

function FileOpen(const FileName: string; Mode: LongWord): THandle;

C++Builder

C++Builder 2010

int __fastcall FileOpen(System::UnicodeString FileName, unsigned int Mode);

C++Builder XE

int __fastcall FileOpen(const System::UnicodeString FileName, unsigned Mode);

C++Builder XE2

unsigned __fastcall FileOpen(const System::UnicodeString FileName, unsigned Mode);

C++Builder XE3

NativeUInt __fastcall FileOpen(const System::UnicodeString FileName, unsigned Mode);

コメントを残す

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

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