- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC7で作成したルーチンをC++Builderで使用するには?)
VC7で作成したルーチンをC++Builderで使用する方法
このQ&Aのポイント
- C++ Builder(Ver5)を使って簡単なGUIのアプリが作れるように勉強しています。
- VC(Ver7)で作成したコンソールアプリケーションのモジュール群をライブラリにして、BCBで使用したいです。
- VC側でどのテンプレートを選んでどのように作ればBCBで使えるライブラリになるのか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
implib.exe 自体は、dll にあるライブラリの情報から、C++ Builder 用のインポートライブラリを作成するものです。なので、dll の形で作成できて、MFC を使っていなければ、OKです。 ただし、一点だけ注意する必要があるのが、ライブラリの関数名には、 extern "C" の指定をしてください。 (ヘッダファイルの関数プロトタイプを、 extern "C" { .... } で囲ってしまえばOKです) これを指定することで、C++の特徴である、「引数の型の異なる関数は別物」というのが使えなくなりますが。 ※Visual C++ や C++ Builder では、関数名+引数の型を合成した名前を内部的に持っています(この変換で、関数名が同じでも、内部的に別の名前になっている)。この変換は、両者で異なりますので、implib を使ってもリンクできません。 extern "C" は、この変換を抑止します。
お礼
有難うございました。 VCでDLLを作るときにMFCではなくWin32を選択し、extern"c"を宣言することで、BCBで読み込めるようになりました。 お陰でBCBでGUIを作って、ルーチンをVCで作成する、そのルーチンをコンソールアプリにも簡単に移植できるようになりました。