現在、DLL を介して C++ アプリケーションにデータを送信する LabVIEW アプリケーションがあります。ここで、C++ アプリから LabVIEW アプリにデータを送り返す必要があります。DLL呼び出しからLabVIEWでコードをトリガできますか?または新しいデータが待機しているかどうかを確認するために定期的にDLLをポーリングする必要がありますか?
それとも、これについて完全に間違った方法で行っていますか?
C++ からイベントを生成して、通常の LabVIEW イベントをトリガすることができます。
これは、この構造について議論している NI フォーラムの投稿です。そして、そのスレッドからのコードの抜粋:
#include <utility.h>
#include <extcode.h>
#include "EventDLL.h"
//Generate a LabVIEW event
int GenerateLVEvent(LVUserEventRef *msg, int param)
{
PostLVUserEvent( *msg, (void *)¶m);
return 0;
}
PNG形式の元のソースコードは次のとおりです:
(ソース: vi-lib.com )
また、付随するLabVIEWコードは次のとおりです:
下のループは、DLLイベントをLabVIEWイベントハンドラに送信するLabVIEWコードです。これは、DLL 内に配置する必要があります。入力パラメーターの 1 つは、U32 としてのイベント ポインターである必要があります。
幸運を、
トン
PS DLL と LabVIEW の相互運用性に飛び込む場合は、RolfK の言うことすべてに注意してください。彼はその分野の第一人者です。