dポイントプレゼントキャンペーン実施中!

C++ Builder(Ver5)を使って簡単なGUIのアプリが作れるように勉強しています。
最近、あるHPでimplib.exeを使えばVC用のライブラリを取り込めることを知り、市販のライブラリで試したところ、容易に取り込むことが出来ました。

ここでご質問です。
今まで私がVC(Ver7)で作成したコンソールアプリケーションがあります。このときに作ったモジュール群をライブラリにして、BCBで使用したいのですが、VC側でどのように作ったら良いのかわかりません。
VC側でどのテンプレートを選んでどのように作ればBCBで使えるライブラリになるのか教えてください。

※私はもともと組込み用のソフト開発者なので、Windowsアプリの知識はビギナークラスです。そんな私でも分かるように配慮してもらえると助かります。

以下に示すHPが私の参考にした方法です。
http://gimite.ddo.jp/bcbqtree/qtreemain.cgi?mode …

A 回答 (1件)

implib.exe 自体は、dll にあるライブラリの情報から、C++ Builder 用のインポートライブラリを作成するものです。

なので、dll の形で作成できて、MFC を使っていなければ、OKです。

ただし、一点だけ注意する必要があるのが、ライブラリの関数名には、 extern "C" の指定をしてください。
(ヘッダファイルの関数プロトタイプを、 extern "C" { .... } で囲ってしまえばOKです)

これを指定することで、C++の特徴である、「引数の型の異なる関数は別物」というのが使えなくなりますが。

※Visual C++ や C++ Builder では、関数名+引数の型を合成した名前を内部的に持っています(この変換で、関数名が同じでも、内部的に別の名前になっている)。この変換は、両者で異なりますので、implib を使ってもリンクできません。 extern "C" は、この変換を抑止します。
    • good
    • 0
この回答へのお礼

有難うございました。
VCでDLLを作るときにMFCではなくWin32を選択し、extern"c"を宣言することで、BCBで読み込めるようになりました。
お陰でBCBでGUIを作って、ルーチンをVCで作成する、そのルーチンをコンソールアプリにも簡単に移植できるようになりました。

お礼日時:2005/07/25 22:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!