2009-07-23 12 views
5

Geçerli bir C++ uygulamasına bir DLL aracılığıyla veri gönderen bir LabVIEW uygulamasına sahibim. Şimdi verileri C++ birinden LabVIEW uygulamasına geri göndermem gerekiyor. LabVIEW'ta bir DLL çağrısından kodu tetikleyebilir miyim veya yeni verilerin bekleyip beklemediğini görmek için düzenli aralıklarla DLL'yi sorgulamalı mıyım? Ya da bunu tamamen yanlış yoldan mı anlatabilir miyim?LabVIEW'de eşzamansız DLL erişimi var mı?

cevap

6

Normal bir LabVIEW olayını tetiklemek için C++ 'dan bir olay üretmek mümkündür.
Here bu yapıyı tartıştıktan sonra bir NI forumlarıdır. Ve bu iş parçacığı bir kod alıntı:

#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; 
} 

Ve burada bir PNG olarak özgün Sourcecode var: alt text http://vi-lib.com/forForum/eventDLL.PNG
Ve burada beraberindeki LabVIEW kodu:
alt text http://vi-lib.com/forForum/eventLV.PNG
alt döngü LabVIEW kod gönderir LabVIEW olay işleyicisine bir DLL olayı. Bu DLL dosyanızın içine yerleştirilmelidir. Giriş parametrelerinden biri U32 olarak olay işaretçisi olmalıdır.

İyi şanslar,

Ton Eğer DLL ve LabVIEW birlikte çalışabilirlik dalmak RolfK söylediği her şeye dikkat do gidiyoruz

PS, o alanda bir gurusudur.

+1

Bağlantılı iş parçacığı ile bu örnek olayları arasında gideceğim iyi olmalıyım. Teşekkürler! – dwj

+0

Evet, bir olay, olayların basit bir sürümüdür. –