4

スタティック ライブラリにコンパイルした axtls ライブラリのコピーがあります。作成中の DLL にリンクしていますが、一部の axtls 関数 ( _MD5_Final_MD5_Initおよび_MD5_Update) が DLL からエクスポートされているようです。どうすればそうならないようにできるかを考えています。

私の DLL は.def、これらの関数のいずれもリストされていないファイルで構築されています。ただし、それらはすべて__declspec(dllexport)axtls 自体のように宣言されているため、エクスポートされていると思われます。

.defファイルなどを使用して、これらの関数のエクスポートをブロックする方法があるかどうか疑問に思っていましたか? 私の DLL はパブリック SDK の一部として使用される予定なので、このように内部関数を公開するのは特に適切ではありません。

axtls の定義からを削除する__declspec(dllexport)と問題が解決するのではないかと思いますが、回避できるのであれば上流のコードを変更したくありません。

4

1 に答える 1

0

静的 LIB ファイルがあり、この LIB ファイルを使用してビルドする DLL にエクスポートされたすべての関数が表示される場合はいつでも、解決策は簡単です。

なしで静的 LIB プロジェクトを__declspec(dllexport)再コンパイルしてから、DLL プロジェクトを再コンパイルします。

DEF ファイルでは、それを行うことはできません。

于 2014-07-15T23:33:15.413 に答える