在Visual C ++中的DLL引用
我有C ++的经验,但不是MSVC。
我正在做的是将一个来自开源项目的.dlljoin到我的项目中。 代码是可用的,我已经build立了它。 我有.DLL以及.LIB,据我所知它是C ++项目所必需的。
现在不幸的是,没有简单的“添加引用”,将我的.dll放入一个包含目录,并将其添加到我的解决scheme。 我编辑了项目属性页面,C / C ++附加包含目录选项以及添加.lib作为附加的链接器依赖项。 我在我的解决scheme树中创build了一个包含dll和lib的目录。
我的问题是,当我尝试从文档包含头文件,VS输出吐出错误信息。 现在我意识到我正在使用dll / lib组合,并且.h文件不存在于我的解决scheme中,所以如何添加正确的包含? 我正在使用QT工具包,也正在工作,但我怎么从开放源码库添加其他头/ DLL逃避我。
有人可以请指点我正确的方向。
你需要做一些事情来使用库:
-
确保您要使用库中的* .lib和* .dll。 如果您没有* .lib,请跳过#2
-
在项目中引用* .lib。 在解决scheme资源pipe理器中右键单击项目名称,然后selectconfiguration属性 – >链接器 – >input,并将该lib的名称添加到其他依赖项属性中。
-
你必须确保VS能够find你刚才添加的库,所以你必须进入工具菜单并select选项…然后在项目和解决scheme下selectVC ++目录,编辑库目录选项。 从这里你可以通过select'Show Directories For:'下拉框中的'Library Files'来设置包含你的新lib的目录。 只需将path添加到目录列表中的lib文件即可。 如果你没有一个lib,你可以忽略这个,但是当你在这里时,你还需要设置包含你的头文件的目录以及“包含文件”。 以与添加库相同的方式进行。
做完这个之后,你应该好好去,可以使用你的图书馆。 如果你没有一个lib文件,你仍然可以通过自己导入它来使用dll。 在应用程序启动过程中,您可以通过调用LoadLibrary显式加载dll(请参阅: http : //msdn.microsoft.com/en-us/library/ms684175 (VS.85) .aspx以获取更多信息)
干杯!
编辑
请记住使用#include <Foo.h>而不是#include“foo.h”。 前者search包含path。 后者使用本地项目文件。
额外的包含目录是相对于项目目录。 这通常是项目文件* .vcproj所在的目录。 我想你的情况下,你只需要添加“include”到你的include和库目录。
如果你想确定你的项目目录是什么,你可以检查$(ProjectDir)macros的值。 要做到“C / C ++ – >其他包含目录”,按“…”button,在popup的对话框中按“macros”。
你提到添加额外的include目录(C / C ++ | General)和附加的lib依赖项(Linker | Input),但是你还添加了额外的库目录(Linker | General)吗?
包括一个示例错误消息也可能帮助人们回答这个问题,因为甚至不清楚在编译或链接期间是否出现错误。