2009-07-23 61 views
5

我有一個LabVIEW應用程序,當前通過DLL將數據發送到C++應用程序。我現在需要將數據從C++發回LabVIEW應用程序。我可以通過DLL調用在LabVIEW中觸發代碼,還是需要定期輪詢DLL以查看新數據是否正在等待?LabVIEW中的異步DLL訪問?

還是我用完全錯誤的方式去解決這個問題?

回答

6

可以從C++生成事件來觸發正常的LabVIEW事件。
Here是一個討論這種結構的NI論壇帖子。 並從該線程代碼摘錄:

#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/eventDLL.PNG
這裏是附帶的LabVIEW代碼:
alt text http://vi-lib.com/forForum/eventLV.PNG
較低的循環是LabVIEW代碼發送一個DLL事件給LabVIEW事件處理程序。 這應該放在你的DLL裏面。 其中一個輸入參數應該是事件指針作爲U32。

祝你好運,

PS如果你打算做深入的DLL和LabVIEW的互操作性,注重一切RolfK說,他是在該領域的大師。

+1

在這和鏈接線程中出現的例子之間我應該很好去。謝謝! – dwj 2009-07-24 16:39:25

+0

是的,一個事件是一個簡單的事件版本。 – 2009-07-28 18:07:04