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';等。