目次

Delphi実行ファイルへのObj ファイルのリンク

目次

BDS2006には C++もついていますので、Cのコードをコンパイルしてできたオブジェクトファイルのリンクもできます。

手順

C++ Builderプロジェクトでスタティックライブラリを新規作成します。
Delphi実行ファイルへのObj ファイルのリンク:画像1
ユニットを一つ追加します。
Delphi実行ファイルへのObj ファイルのリンク:画像2
ヘッダ側の UnitMain.h に以下のコードを書きます。 extern "C" を忘れずに。
Delphi実行ファイルへのObj ファイルのリンク:画像3
コード側の UnitMain.c に以下のコードを書きます。
Delphi実行ファイルへのObj ファイルのリンク:画像4
ビルドすると以下のファイルがビルドされます。
Delphi実行ファイルへのObj ファイルのリンク:画像5
このうち、*.obj のファイルをDelphiのプロジェクトがあるディレクトリにコピーします。
Delphi実行ファイルへのObj ファイルのリンク:画像6
Delphi側に下記のコードを記述します。$L指令で Objファイルを読み込みリンクします。関数名の頭に"_"がついていることに注意。
Delphi実行ファイルへのObj ファイルのリンク:画像7
ちなみに、なぜ関数の頭に"_"がつくことが分かるかというと。TDUMPコマンドでobjファイルを調べられるためです。
Delphi実行ファイルへのObj ファイルのリンク:画像8
Tdumpを実行し、ダンプ結果を見ると、確かに関数名が'_addproc'になっていることが分かります。
Delphi実行ファイルへのObj ファイルのリンク:画像9
ちなみに、呼び出し規約が _stdcall の場合は _がつかない名前になることも、Tdumpを使えば分かります。
Delphi実行ファイルへのObj ファイルのリンク:画像10


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2006-01-01
Copyright © 1995–2025 iPentec all rights reserverd.