名前 題名 ▼ takaさん > ▼ Mr.XRAYさん > > ByteLength はしょうがないととして,PByte が... > > なるほど,Ptr(Integer ですか.ですよね. > > 昔は PChar をポインタ代わりに使用するコードが多かったですね. > > Integer ? > > ごめんなさい!! > 64bit環境考慮していませんでした(^^ ; > > Move(LFileListText[1], PByte(LongInt(LpDropFiles) + SizeOf(TDropFiles))^, LLen); > > です > > ・ ポインタアドレスのサイズと同じサイズの整数は > プラットフォーム依存の整数の LongInt型 > (LongWordではない理由は不明.) > Integer は、常に32 ビットなので LongIntに置き換える。 > > ・「型なしポインタ」の逆参照は 通常使ってはいけないらしいので、PByteに戻しました。 > > アドレス計算は、LongInt型にあてないといけないようです。 > Freepascalには、PtrInt, PtrUIntという型があり、アドレス計算しやすいようになっているようです。 > PtrInt型 : http://www.freepascal.org/docs-html/rtl/system/ptrint.html > > Unicode版はCharが2バイトになったので、 混乱するので PByteのほうがいいですね。 > 古いdelphi(Version 5とか)は type PByte = ^Byte; を宣言してもらう GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link