C++ 在visual studio 2012(C+;+;)中使用.lib

C++ 在visual studio 2012(C+;+;)中使用.lib,c++,static-libraries,using,function-call,.lib,C++,Static Libraries,Using,Function Call,.lib,我有一个.lib静态库。我在链接器设置“附加库目录”和“附加依赖项”下以及使用pragma注释(lib,“mylib”)链接了它。。所有这些都很好 我要问的是,当我看的时候,我似乎只能找到链接解决方案,那就是如何实际使用其中的函数。如果我在静态库中引用了函数“MyFunc”,我如何调用它?Visual Studio当前无法识别库中定义的任何名称空间或函数 谢谢 您需要获取该库的头文件,它通常随库提供。在这之后,您需要将它包含在您想要使用其中的函数的文件中,并使用声明的原型调用函数 你的编译器需要

我有一个.lib静态库。我在链接器设置“附加库目录”和“附加依赖项”下以及使用
pragma注释(lib,“mylib”)链接了它。
。所有这些都很好

我要问的是,当我看的时候,我似乎只能找到链接解决方案,那就是如何实际使用其中的函数。如果我在静态库中引用了函数“MyFunc”,我如何调用它?Visual Studio当前无法识别库中定义的任何名称空间或函数


谢谢

您需要获取该库的头文件,它通常随库提供。在这之后,您需要将它包含在您想要使用其中的函数的文件中,并使用声明的原型调用函数


你的编译器需要知道函数的原型——因为它不能读取/解析lib文件——这是链接器的工作。

如果我理解你的要求,你需要为你的函数-that-lives-in-a-lib声明一个原型:

假设你的lib有:

int Foo(int bar) { ... }
pragma
库所在的“消费者”中,您需要说明:

extern int Foo(int bar);
甚至只是:

int Foo(int bar);

通常,您可以通过头文件(
.h
文件)执行此操作,对于库,它们通常被称为“包含文件”

对于这种奇怪的格式,非常抱歉。我不知道为什么会这样,我猜你需要编译一个头文件,它有方法/类定义?关于格式-如果你用四个空格标识文本,它会被解析为代码块。对于内联注释,使用`characters.Doh,这是我看到弹出窗口时不“加载新答案”得到的结果。:)嗯,好的。我从项目中获得了.h文件,并且在编译它时使用了release文件夹中的.lib。我将链接器设置为release文件夹中的.lib,并将父目录中的c/c++->general下的“include additional directories”设置为“MyLib.h”。现在它说[错误LNK1104:无法打开文件'MyLib.lib'@JerKimball,但您将损失大约3秒的时间来查找它,这在这么长的时间里-如果我每次单击该框,我仍然会有500的声誉:)@knoxaramav2显然您没有设置链接器附加库路径:链接器->常规->附加库目录。Reche勾选该选项以确保mylib.lib在该目录中。@Nemanja Boric我查看了检查,我检查了。我将它改为查看“调试”文件夹而不是“发布”文件夹,现在它可以工作了。谢谢大家!