名前 題名 ▼ DEKOさん > SizeOf() はバイト数を返します。 > > StrTempPath: Array[0..MAX_PATH] of Char; > ↓ > StrTempPath: Array[0..MAX_PATH] of AnsiChar; <- ANSI 版 Delphi > StrTempPath: Array[0..MAX_PATH] of WideChar; <- Unicode 版 Delphi > > ですので、Unicode 版 Delphi で SizeOf(StrTempPath) を実行すると > 522 ("(260 + 1) * 2") が返ってきます。 > > 一方、GetTempPath() の引数は "TCHAR 単位" です。 > TCHAR というのは... > > ANSI の時 → 1 エレメント = バイト > Unicode の時 → 1 エレメント = ワード > > ですので、正しくは > > GetTempPath(Length(StrTempPath), StrTempPath) > > となります (ANSI でも Unicode でも)。 > > [SizeOf の呼び出し (DocWiki)] > http://docwiki.embarcadero.com/RADStudio/XE/ja/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92_Unicode_%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%99%E3%82%8B#SizeOf_.E3.81.AE.E5.91.BC.E3.81.B3.E5.87.BA.E3.81.97 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link