2009-07-23 15 views
5

私は現在、DLLを介してC++アプリケーションにデータを送信するLabVIEWアプリケーションを持っています。私は今、C++からLabVIEWアプリケーションにデータを送り返す必要があります。 DLLコールからLabVIEWでコードをトリガすることはできますか?または、新しいデータが待機しているかどうかを定期的にポーリングする必要がありますか?LabVIEWでの非同期DLLアクセス?

また、私は完全に間違った方法でこれについて行っていますか?

答えて

6

通常のLabVIEWイベントをトリガするイベントをC++から生成することは可能です。
Hereは、この構造について議論しているNIフォーラムの投稿です。 そして、そのスレッドからの抜粋コード: alt text http://vi-lib.com/forForum/eventDLL.PNG
そして、ここでは、添付のLabVIEWコードです:

#include <utility.h> 
#include <extcode.h> 
#include "EventDLL.h" 
//Generate a LabVIEW event 
int GenerateLVEvent(LVUserEventRef *msg, int param) 
{ 
PostLVUserEvent(*msg, (void *)&param); 
return 0; 
} 

そして、ここでは、PNG、元のソースコードだ
alt text http://vi-lib.com/forForum/eventLV.PNG
下ループが送信するLabVIEWコードでありますLabVIEWイベントハンドラへのDLLイベント。 これはDLL内に配置する必要があります。 入力パラメータの1つがU32としてのイベントポインタである必要があります。

幸運、

トンあなたは、DLLおよびLabVIEWの相互運用性に飛び込むRolfKが言うすべてに注意を払って行う予定がある場合

PSは、彼がその分野での第一人者です。

+1

このスレッドとリンクされたスレッドの発生の例の間に、私はうまくいくはずです。ありがとう! – dwj

+0

はい、発生は単純なバージョンのイベントです。 –