4

そのため、現在、National Intruments と IVI Foundation の VISA ライブラリを使用して、さまざまな外部デバイスへのコマンドの読み取り/書き込みを試みています。

私は自分の IDE である Microsoft Visual C++ Express 2010 に比較的慣れていませんが、.h インポート以上を必要とするサード パーティ製ライブラリを使用しようとするのはこれが初めてです。

基本的に、3 つのヘッダー ファイルを含むディレクトリ、3 つの .lib ライブラリを含むディレクトリ、および 7 つの DLL を含むディレクトリがあります。個々のファイルの機能に関するドキュメントはなく、ライブラリ全体のみです。そのため、プロジェクトに関連付けられているこれらのファイルをすべて取得できる必要があります。

現在、すべてのヘッダーがヘッダー ファイルにインポートされ、ヘッダー ディレクトリがプロジェクト プロパティのインクルード ディレクトリに追加されています。また、プロジェクト プロパティのライブラリ ディレクトリに追加された .lib ファイルを含むディレクトリもあります。.lib ファイルが DLL にリンクすると仮定しましたが、エラーが発生しているため、そうではないようです。

VISA Console 2.obj : エラー LNK2019: 未解決の外部シンボル _viOpenDefaultRM@4 が関数 _wmain で参照されています

このエラーは、ライブラリの関数を使用すると発生します。現在、私のコードは次のとおりです。

#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

プロジェクトのプロパティに追加の依存関係を追加しましたか?

「リンカー - >入力」の下で「追加の依存関係」を見つけ、そこに取得したライブラリを配置します

于 2012-12-20T16:53:50.653 に答える