Delphi実行ファイルへのObj ファイルのリンク - Delphi 2006
BDS2006には C++もついていますので、Cのコードをコンパイルしてできたオブジェクトファイルのリンクもできます。
手順
C++ Builderプロジェクトでスタティックライブラリを新規作成します。
ユニットを一つ追加します。
ヘッダ側の UnitMain.h に以下のコードを書きます。 extern "C" を忘れずに。
コード側の UnitMain.c に以下のコードを書きます。
ビルドすると以下のファイルがビルドされます。
このうち、*.obj のファイルをDelphiのプロジェクトがあるディレクトリにコピーします。
Delphi側に下記のコードを記述します。$L指令で Objファイルを読み込みリンクします。関数名の頭に"_"がついていることに注意。
ちなみに、なぜ関数の頭に"_"がつくことが分かるかというと。TDUMPコマンドでobjファイルを調べられるためです。
Tdumpを実行し、ダンプ結果を見ると、確かに関数名が'_addproc'になっていることが分かります。
ちなみに、呼び出し規約が _stdcall の場合は _がつかない名前になることも、Tdumpを使えば分かります。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用