4

我有一个已编译成静态库的 axtls 库的副本。我将它链接到我正在构建的 DLL 中,并且某些 axtls 函数(_MD5_Final_MD5_Init_MD5_Update似乎正在从我的 DLL 中导出。我试图弄清楚如何阻止这种情况发生。

我的 DLL 是用一个.def没有列出任何这些函数的文件构建的。但是,它们都被声明为__declspec(dllexport)在 axtls 本身中,所以我怀疑这就是它们被导出的原因。

我想知道是否有办法阻止这些函数的导出,使用.def文件或类似的?我的 DLL 将用作公共 SDK 的一部分,因此公开这样的内部函数并不是特别好。

我怀疑__declspec(dllexport)从 axtls 的定义中删除 可能会解决我的问题,但如果可以避免的话,我宁愿不去修改上游代码。

4

1 回答 1

0

每当您有一个静态 LIB 文件并在使用此 LIB 文件构建的 DLL 中查看它的所有导出函数时,解决方案很简单:

重新编译静态 LIB 项目__declspec(dllexport),然后重新编译 DLL 项目。

使用 DEF 文件,您无法做到这一点。

于 2014-07-15T23:33:15.413 回答