4

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

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

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

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

VISA 控制台 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 个构建得很好的对象声明。

好的,这是我所有的信息,希望有人可以提供帮助,希望这对其他人有帮助!

4

2 回答 2

5

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

将库添加到项目的

 Configuration Properties | Linker | Input | Additional Dependencies

场地。

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

于 2012-12-20T16:53:32.377 回答
1

您是否在项目属性中添加了额外的依赖项?

在“Linker->Input”下找到“Additional Dependecies”并将你从中获得的库放在那里

于 2012-12-20T16:53:50.653 回答