• 締切済み

ライブラリについて

MicroSoft VC++で作成された.dllや.libファイルはBorland C++Builderからは呼び出すことはできるのでしょうか?どなたか教えて下さい!!

みんなの回答

  • hogejo
  • ベストアンサー率42% (11/26)
回答No.2

defファイルで気をつけるべきは、以下の2点だと思います。 (1)正しくマングルされた関数名がdefファイルに書いてあること (2)その関数の序数が、DLL内の序数と合致していること nishimotuさんの場合は、インポートライブラリをリンクする際にエラーになったのだと思いますが、その際、マングル済みの関数名がエラーメッセージと共に表示されていると思います。それをdefファイルに書き写して、もう一度インポートライブラリを作り直しては如何でしょうか? Borlandのものを、VCから利用は経験ありますが・・・ 今回とは逆のパターンなので、正確なアドバイスはできないけど 投稿してみました。 以下は適当な解説です。 libは出来ないと思います。(インポートライブラリは後述) dllはできます。  VC製のDLLには、VC用のインポートライブラリ(lib)が同梱されていたかと思います。DLLはそのままC++Builderでも使用できますが、DLLとあなたのプログラムを結ぶインポートライブラリは、C++Builder用のモノを作る必要があります。 defファイルの?は、多分、VCでビルドした際に、extern "C"されていない(つまりC++リンケージの)関数だったことを表しているのだと思います。C++関数は、defファイルの関数名の記述に、引数の数などが必要だと思います。

参考URL:
http://fooo.boo.jp/304dlldef.html, http://fooo.boo.jp/
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1
nishimotu
質問者

お礼

ありごとうございました!!参考サイトを読んでみたいと思います!!

nishimotu
質問者

補足

IMPLIBを使っても正常にリンクできませんでした…それで調べてみたのですが,IMPDEFをつかいモジュール定義ファイルを作成しその中身を見てみると関数定義の頭に?がついていました。これは,リンクできないことの問題があると思うのですがどうしたらいいのか分からず悩んでいます。何か分かることがあれば教えて下さい!!

関連するQ&A