5
我有一個LabVIEW應用程序,當前通過DLL將數據發送到C++應用程序。我現在需要將數據從C++發回LabVIEW應用程序。我可以通過DLL調用在LabVIEW中觸發代碼,還是需要定期輪詢DLL以查看新數據是否正在等待?LabVIEW中的異步DLL訪問?
還是我用完全錯誤的方式去解決這個問題?
我有一個LabVIEW應用程序,當前通過DLL將數據發送到C++應用程序。我現在需要將數據從C++發回LabVIEW應用程序。我可以通過DLL調用在LabVIEW中觸發代碼,還是需要定期輪詢DLL以查看新數據是否正在等待?LabVIEW中的異步DLL訪問?
還是我用完全錯誤的方式去解決這個問題?
可以從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 *)¶m);
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說,他是在該領域的大師。
在這和鏈接線程中出現的例子之間我應該很好去。謝謝! – dwj 2009-07-24 16:39:25
是的,一個事件是一個簡單的事件版本。 – 2009-07-28 18:07:04