我有两个在Visual Studio 2015下编写的C项目。第一个项目只是一个静态库项目,而第二个项目是一个控制台应用程序,它使用第一个项目生成的静态库文件。验证封装生成的库
我在Windows中使用DUMPBIN工具检查了静态库文件,发现有很多变量和函数暴露在外面,这对封装问题非常不利。
我的问题是我怎么能确定我不公开那些应该是私人的功能。我是否需要每次使用该工具进行检查?我的问题也涵盖了变量。我所有的静态全局变量也暴露在外面。我如何强迫他们成为私人?
我有两个在Visual Studio 2015下编写的C项目。第一个项目只是一个静态库项目,而第二个项目是一个控制台应用程序,它使用第一个项目生成的静态库文件。验证封装生成的库
我在Windows中使用DUMPBIN工具检查了静态库文件,发现有很多变量和函数暴露在外面,这对封装问题非常不利。
我的问题是我怎么能确定我不公开那些应该是私人的功能。我是否需要每次使用该工具进行检查?我的问题也涵盖了变量。我所有的静态全局变量也暴露在外面。我如何强迫他们成为私人?
我不认为在dumpbin输出中的存在可以被认为是“暴露”。所有的静态全局变量都需要一些空间分配,并可能在运行时进行初始化。所以对于他们来说,存在于dumpbin输出中是很自然的。另外,如果您正在编译链接时代码,那么所有内容实际上都是“暴露”的。
根据定义,内部连接的名称不应该用于外部。如果您的库包含多个编译单元,则不要提供内部声明。 – Olaf