3

VC2008 SP1 を搭載した Windows でプログラムをリンクするのに問題があります。DLL でテンプレート メンバー関数を明示的に特殊化しています。これは、依存関係ウォーカーでエクスポートされたシンボルとして正しく表示され、正しい型で正しい引数を使用します。

.exeからシンボルを呼び出そうとすると、リンカーはシンボルを解決できないと不平を言います(オブジェクトは正常にコンパイルされますが)。ただし、解決できないと言うシンボルの装飾名は、 DLL 内のエクスポートされたシンボルの装飾名 (依存関係ウォーカーで表示) 問題は、明示的に特殊化されたエクスポートされたテンプレート メンバー関数に対してのみ発生します。これらの呼び出しにコメントすると、エクスポートされた他のすべての関数クラスが正常にリンクされるため、.lib は正常に生成されているように見えます。

ヘッダーのテンプレート関数の宣言を変更して「extern」ディレクティブを含めようとしましたが、通常の __declspec(dllimport) が正しく指定されていますが、違いはありません。

どんなアイデアでも大歓迎です。ありがとう。

4

1 に答える 1

5

最後に、これの根底に到達することができました-ソース管理からのDLLと一致するようにチェックインされなかった.libが原因でした-おそらく異なるコンパイラバージョンでビルドされました。無駄な時間を申し訳ありません。...他のすべてが失敗した場合は、ライブラリの依存関係を再構築してみてください。

于 2009-10-10T23:25:57.700 に答える