首页 文章

Visual C中的DLL引用

提问于
浏览
41

我有C经验但不是MSVC .

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

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

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

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

3 回答

  • 75

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

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

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

    • 您必须确保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

    附加的include目录是相对于项目目录的 . 这通常是项目文件* .vcproj所在的目录 . 我想在你的情况下,你必须在include和library目录中添加“include” .

    如果你想确定你的项目目录是什么,你可以检查$(ProjectDir)宏的值 . 要执行此操作,请转到“C / C - >其他包含目录”,按“...”按钮,然后在弹出的对话框中按“宏”>> .

  • 2

    您提到添加其他包含目录(C / C |常规)和其他lib依赖项(链接器|输入),但是您是否还添加了其他库目录(链接器|常规)?

    包含示例错误消息也可能有助于人们回答问题,因为在编译或链接期间错误甚至不清楚 .

相关问题