Visual C ++中的DLL引用

时间:2009-05-01 02:22:22

标签: c++ visual-c++ dll

我有C ++经验,但没有MSVC。

我要做的是将开源项目中的.dll合并到我的项目中。代码可用,我已经构建了它。我有.dll和.lib,据我所知它是C ++项目所必需的。

现在很遗憾没有简单的“添加引用”,将我的.dll放入include目录并将其添加到我的解决方案中。我编辑了项目属性页面,C / C ++ Additional Include Directories选项以及添加.lib作为附加链接器依赖项。我在解决方案树中为dll和lib创建了一个include目录。

我的问题是当我尝试从文档中包含头文件时,VS输出会发出错误消息。现在我意识到我正在使用dll / lib组合,并且我的解决方案中没有.h文件,所以如何添加正确的包含?我正在使用QT工具包,但是我如何从开源库中添加其他头文件/ dll使我失望。

有人可以指出我正确的方向。

3 个答案:

答案 0 :(得分:77)

您需要做一些事情才能使用该库:

  1. 确保您要使用的库中包含* .lib和* .dll。如果您没有* .lib,请跳过#2

  2. 在项目中引用* .lib。右键单击解决方案资源管理器中的项目名称,然后选择配置属性 - >链接器 - >输入,并将库的名称放在附加依赖项属性中。

  3. 您必须确保VS可以找到刚刚添加的库,因此您必须转到“工具”菜单并选择“选项...”然后在“项目和解决方案”下选择“VC ++目录”,编辑“库目录”选项。在此处,您可以通过选择“Show Directories For:”下拉框中的“Library Files”来设置包含新lib的目录。只需在目录列表中添加lib文件的路径即可。如果你没有lib,你可以省略它,但在这里你还需要在'Include Files'下设置包含头文件的目录。这样做就像添加lib一样。

  4. 这样做之后你应该很高兴可以使用你的图书馆。如果你没有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依赖项(链接器|输入),但是您是否还添加了其他库目录(链接器|常规)?

包含示例错误消息也可能有助于人们回答问题,因为在编译或链接过程中错误是否甚至不清楚。