FreePascalその5

FreePascalで他コンパイラからリンクするためのライブラリを書くメモ。

  • System含めて外部ユニットで定義された型を使うときはtype T = type U.T;とするとRTTIをインポートして来ずにその場で生成されるので完結できるし.sからの削除も楽。
  • malloc等静的リンクされることを当てにした外部ライブラリをインポートするときは、function malloc(size: Cardinal): Pointer; external name '_malloc';等。Delphiと異なりexternalの後にDLL名飛ばしてnameが書ける。書かないと名前が装飾されてしまう。恐らく全体をFreePascalで作るときはその場合スタブも用意されるのでしょう。
  • 逆にエクスポートは、implementation節の実装にて、alias: '_myfunc';等。