使用由“.h”,“。lib”和“。dll”文件组成的第三方库

时间:2012-12-20 16:45:25

标签: c++ dll header include .lib

所以目前我正在尝试使用National Intruments和IVI Foundation的VISA库来读取/写入各种外部设备的命令。

我对我的IDE相对较新:Microsoft Visual C ++ Express 2010,这是我第一次尝试使用需要超过.h导入的第三方库。

基本上我有一个包含3个头文件的目录,一个包含3个.lib库的目录和一个包含7个DLL的目录。他们没有关于任何单个文件的文档,只有整个库。所以,我需要能够获得与我的项目相关的所有这些文件。

目前,我在头文件中导入了所有标头,并将标头目录添加到项目属性中的include目录中。我还有一个目录,其中包含添加到项目属性中库目录的.lib文件。我假设.lib文件会链接到DLL,但显然情况并非如此,因为我收到了错误:

  

VISA Console 2.obj:错误LNK2019:函数_wmain中引用的未解析的外部符号_viOpenDefaultRM @ 4

使用库中的任何功能时会发生此错误。这是我目前的代码:

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
    ViStatus status;
    ViSession defaultRM, instr;

    status = viOpenDefaultRM(&defaultRM);

    return 0;
}

当我注释掉viOpenDefaultRM命令时,项目将构建,所以我认为这意味着我可以使用库中的对象而不是命令。因为我有3个对象声明构建得很好。

好的,这是我的全部信息,希望有人可以提供帮助,并希望这有助于其他人!

2 个答案:

答案 0 :(得分:5)

除了将.lib文件的目录添加到库目录属性之外,还需要添加链接器应搜索的实际库。

将库添加到项目的

 Configuration Properties | Linker | Input | Additional Dependencies

字段。

构建过程不需要DLL,但是要运行程序,它们应该位于PATH目录中或与程序文件位于同一目录中。

答案 1 :(得分:1)

您是否已向项目属性添加了其他依赖项?

在“Linker-> Input”下找到“Additional Dependencies”并在那里放置你从中获取的库