名前 題名 ▼ takaさん > 落とし穴 その1 > > {$mode objfpc} > > を宣言しないと > integerがsmallintになります。 > > 落とし穴 その2 > {$H+} > を宣言しないと > stringが string[255]になります。 > stringを出し入れする関数が大ダメージを受けます。 > :ref.pdf p.23 : 3.2.3 > :prog.pdf p.20 : 1.1.20 $H or $LONGSTRINGS : Use AnsiStrings > > Delphiでは、デフォルトは {$H+} です。 > > {$mode objfpc} > なんかは、Delphiにそんなのナイヨと怒られます!! > [エラー] Unit1.pas(): 間違ったコンパイル指令 : 'mode' > > 同じユニットをDelphiでも使いたいヨ! > ということで > 【まとめ】 > ソース(pas,pp)に含める指令 > > {$IFDEF FPC} > {$mode objfpc} > {$H+} > // これがないと FPCで integerが1バイトになるので注意 > // これがないと FPCで string[255]になるので注意 > {$ENDIF} > > > ------------------ > {$mode objfpc}をソースに書きたくない場合は > fpc.cfg 又はプロジェクトのオプションでも > 変更できます。 > > {$H+}は、 > Delphiのコンパイラのでは dcc32 -d$H+ みたいなことができるのですが > fpcでは? どうでしょう?? 探しましたがわかりません。 > > > ------------------ > ついでに > FreePascal2/doc/prog/progap7.html > も必見です > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link