我有一份我编译成静态库的axtls库的副本。我将它链接到我正在构建的DLL中,并且一些axtls函数(_MD5_Final
,_MD5_Init
和_MD5_Update
)似乎是从我的DLL导出的。我正在试图弄清楚如何阻止这种情况发生。
我的DLL使用.def
文件构建,该文件未列出任何这些功能。但是,它们都在axtls中声明为__declspec(dllexport)
,因此我怀疑这就是它们被导出的原因。
我想知道是否有办法阻止导出这些函数,使用.def
文件或类似文件?我的DLL将被用作公共SDK的一部分,因此公开这样的内部函数并不是特别好。
我怀疑从axtls中的定义中删除__declspec(dllexport)
可能会解决我的问题,但如果可以避免,我宁愿不修改上游代码。
答案 0 :(得分:0)
每当你有一个静态LIB文件并在使用这个LIB文件构建的DLL中查看它的所有导出函数时,解决方案很简单:
重新编译不带__declspec(dllexport)
的静态LIB项目,然后重新编译DLL项目。
使用DEF文件,您无法做到这一点。