我有C ++经验,但没有MSVC。
我要做的是将开源项目中的.dll合并到我的项目中。代码可用,我已经构建了它。我有.dll和.lib,据我所知它是C ++项目所必需的。
现在很遗憾没有简单的“添加引用”,将我的.dll放入include目录并将其添加到我的解决方案中。我编辑了项目属性页面,C / C ++ Additional Include Directories选项以及添加.lib作为附加链接器依赖项。我在解决方案树中为dll和lib创建了一个include目录。
我的问题是当我尝试从文档中包含头文件时,VS输出会发出错误消息。现在我意识到我正在使用dll / lib组合,并且我的解决方案中没有.h文件,所以如何添加正确的包含?我正在使用QT工具包,但是我如何从开源库中添加其他头文件/ dll使我失望。
有人可以指出我正确的方向。
答案 0 :(得分:77)
您需要做一些事情才能使用该库:
确保您要使用的库中包含* .lib和* .dll。如果您没有* .lib,请跳过#2
在项目中引用* .lib。右键单击解决方案资源管理器中的项目名称,然后选择配置属性 - >链接器 - >输入,并将库的名称放在附加依赖项属性中。
您必须确保VS可以找到刚刚添加的库,因此您必须转到“工具”菜单并选择“选项...”然后在“项目和解决方案”下选择“VC ++目录”,编辑“库目录”选项。在此处,您可以通过选择“Show Directories For:”下拉框中的“Library Files”来设置包含新lib的目录。只需在目录列表中添加lib文件的路径即可。如果你没有lib,你可以省略它,但在这里你还需要在'Include Files'下设置包含头文件的目录。这样做就像添加lib一样。
这样做之后你应该很高兴可以使用你的图书馆。如果你没有lib文件,你仍然可以自己导入它来使用dll。在应用程序启动期间,您可以通过调用LoadLibrary显式加载dll(有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx)
干杯!
修改
请记住使用#include< Foo.h>而不是#include“foo.h”。前者搜索包含路径。后者使用本地项目文件。
答案 1 :(得分:2)
其他包含目录与项目目录相关。这通常是项目文件* .vcproj所在的目录。我想在你的情况下,你必须在include和library目录中添加“include”。
如果你想确定你的项目目录是什么,你可以检查$(ProjectDir)宏的值。为此,请转到“C / C ++ - >其他包含目录”,按“...”按钮,然后在弹出的对话框中按“宏>>”。
答案 2 :(得分:1)
您提到添加其他包含目录(C / C ++ |常规)和其他lib依赖项(链接器|输入),但是您是否还添加了其他库目录(链接器|常规)?
包含示例错误消息也可能有助于人们回答问题,因为在编译或链接过程中错误是否甚至不清楚。