概要
LabVIEWで作成したクラスタを含むDLLを、VC++から呼び出すためのコード例をご紹介します
詳細
LabVIEWのクラスタは、C++などでいわゆる構造体として扱われます。
クラスタを入出力とするVIから生成したDLLに対してアクセスするためには、以下のようなコードで実装が可能です。
================================================================
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include <cstdint>
using namespace std;
struct Input_t{
int32_t A;
int32_t B;
} variable_t;
typedef void (*FUNC)(Input_t *,int32_t *);
int _tmain(int argc, _TCHAR* argv[])
{
HINSTANCE hDLL = LoadLibrary(TEXT("C:\\My_DLL\\Cluster_dll.dll"));
if(hDLL == NULL){
cout << "error" << endl; // error check
}
FARPROC lpIO = GetProcAddress(HMODULE(hDLL),"Cluster_dll");
//define type
FUNC myFunc;
myFunc = FUNC(lpIO);
//define returned variable
int32_t myValue = 0;
Input_t AB;
AB.A = 5;
AB.B = 2;
//call function
myFunc(&AB,&myValue);
cout << myValue << endl;
getchar();
FreeLibrary(hDLL);
return 0;
}
================================================================
◎ 実行結果

◎ VIのブロックダイアグラム構造

必要なもの
ソフトウェア
・LabVIEW + Application Builder
・C++開発環境