C++Builder DLL

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Cユーザー

C++Builder DLL

#1

投稿記事 by Cユーザー » 13年前

VC++で作成したDLLをC++Builderで使おうとするとリンカエラになります。

色んな掲示板、サイトを検索した結果以下の対応が必要なのがわかりました。

・implibコマンドを使い、C++Builder用のlibファイルに変換
・そのファイルをプロジェクトに追加
・DLLとヘッダーを同階層に追加

実際に使うと、Unresolved external (関数名)
referenced from...

というリンカエラーが出ます。
色んな掲示板で似た質問がありますが、解決できた!
という回答がありません

ご教授お願いします

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: C++Builder DLL

#2

投稿記事 by softya(ソフト屋) » 13年前

前の質問でh2so5さんが紹介されたサイトは全部読まれたのでしょうか?
「C++Builder DLL • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?t=12516&p=100313

>実際に使うと、Unresolved external (関数名)
>referenced from...

C++のDLLにおける名前問題を解決されていないようですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Cユーザー

Re: C++Builder DLL

#3

投稿記事 by Cユーザー » 13年前

ちゃんと翻訳して読みましたよ
読んで今に至るわけですが

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: C++Builder DLL

#4

投稿記事 by softya(ソフト屋) » 13年前

Cユーザー さんが書きました:ちゃんと翻訳して読みましたよ
読んで今に至るわけですが
それではdefファイルで名前をちゃんと定義されたのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Cユーザー

Re: C++Builder DLL

#5

投稿記事 by Cユーザー » 13年前

はい、もちろん。
そのサイトの最後に例文ありますがその通りにしても同じになります。
もちろんdefファイルで定義はしてます

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: C++Builder DLL

#6

投稿記事 by softya(ソフト屋) » 13年前

それでは、順番に確認するしか無いと思います。
1)VC++のDLLはdefファイルでちゃんと名前が変更されているかDLLをツールで確認。
2)__stdcallで統一されていることを確認。
3)VC++のインポートライブラリを変換したインポートライブラリがちゃんと変換されているか確認。

私はC++Builderを持っていないので検証は申し訳ないですが出来ません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Cユーザー

Re: C++Builder DLL

#7

投稿記事 by Cユーザー » 13年前

・implibでC++builder用のlib作成
・__stdcallを関数の前につける
・インポートにdefファイルを使う
・externCで関数宣言を囲む

で解決しました。

閉鎖

“C言語何でも質問掲示板” へ戻る