DLLのシンボル名を制御するには?

解決


シンプソン  2003-09-05 01:20:43  No: 52088  IP: [192.*.*.*]

eMbedded VC++ 4.0を使っています.

シンボル名の制御と書きましたが,実際にはどうすれば
よいのか全くわかっていません.
何かよい方法をご存知の方がおられましたら,ぜひとも
ご教授承りたいと思います.

現在直面している問題ですが,
DLLを作成しDLL内の関数を呼び出すときに,
"unresolved external symbol"
というエラーが呼び出し側のビルド時に出てしまいます.

DLLでは複数の関数をエクスポートしているのですが,
他の関数はリンクエラーしないのにある特定の関数だけが
このようなリンクエラーになってしまいます.

以下,関数名などは適当に付けています.
エラーを見てみると __imp__FuncA が見つからないといっている
ので,作成したDLLのlibファイルをcygwin上でnmしてみたところ
__imp__?FuncA@@〜〜〜〜〜
などとなっていました.他の関数については
__imp__FuncB
_FuncB
__imp_FuncC
_FuncC
などとなっており,確かにリンカーがシンボルを見つけられそうに
ないなぁというのはわかったのですが,
FuncAの書き出しシンボル名を制御できるのかどうかがちょっと
わかりません.
FuncAの書き出しシンボル名が
__imp_FuncA
_FuncA
などとなれば呼び出し側でリンクエラーが起こらなくなると思っています.

うまく説明できたか心配ですが,よろしくお願いします.

編集 削除
シンプソン  2003-09-05 10:13:49  No: 52089  IP: [192.*.*.*]

掲示板を無駄にお借りして申し訳ありませんでしたが,
自己解決できましたです.

お騒がせしました.

編集 削除
_  2003-09-05 13:54:44  No: 52090  IP: [192.*.*.*]

解決方法を書けば、同様の問題を抱えている人の助けになり無駄にはなりません。
上のように自己完結してしまっては、本当に無駄になってしまいます。

編集 削除