0

我在 Visual Studio 2015 下有一个静态库项目(用 C 语言编写)和另一个示例项目(用 C 语言编写)。我可以毫无问题地使用位于示例项目中的库中的函数。我的问题是我在静态库项目的一个头文件中有一个宏,我在示例项目中看不到(或使用)这个宏。我收到此错误:“函数 main 中引用的未解析的外部符号 ADD1”。如何在示例项目中使用此宏?

注意:我在示例项目中使用库文件,这要归功于 this pragma this pragma: #pragma comment(lib, "mylib.lib")

4

2 回答 2

3

我不想包含静态库项目的任何头文件。他们不应该被其他项目看到。

我认为有些混乱。


要使用任何库,您必须了解它的函数、数据类型(例如:enum、、、 ) structtypedef宏等……所有这些都构成了库的“API”。

大多数库(不是全部)都会有一些内部头文件。你是对的,这些不应该被其他项目看到,并且将在内部严格使用。

所有库都会有一些定义其 API 的“公共”标头。没有公共 API 的代码库要么毫无用处,要么实际上是一个独立的应用程序。

于 2017-04-03T14:34:15.213 回答
2

将您的标题包含在#include指令中,而不是一些杂注。

应编写标头,使其成为库的公共接口,即使库代码本身可能未打开。宏要么是公共的,然后可以在标头中声明,要么它不是公共的,在这种情况下,您应该将其封装在库中。

如果库代码被预编译并作为二进制文件交付,则在调用者无权访问的 C 文件或 H 文件中声明它。

于 2017-04-03T14:24:54.150 回答