如何阻止在msvsc++中导出函数

How to block a function from being exported in MS VS C++?

本文关键字:函数 msvsc++ 何阻止      更新时间:2023-10-16

因此,对于参数而言,我有一个名为ExportedFunctions.cpp的模块,其中包含两个用DLL_EXPORT(见下文)装饰的函数

#define DLL_EXPORT __declspec(dllexport)

exportedfunctions .cpp包含一个LibraryFunctions.h。在该头文件中声明的函数在LibraryFunctions中实现。

问题是,当我编译我的DLL并使用依赖项行走器(depends.exe)查看它时,我不仅可以看到ExportedFunctions.cpp导出的函数,还可以看到LibraryFunctions.h中的所有函数。

即使我从LibraryFunctions.h中删除了一些函数声明,情况也是如此。它们一直显示为DLL入口点。我想隐藏它们

明白了。

问题是lib文件正在导出函数。看起来,不管.h文件写的是什么,它都会导出。

幸运的是,我也是LibraryFunctions的所有者,所以我使用"Release - Static Lib"重新编译了它。在这个配置中,我阻塞了dllexport指令。