2009-07-23 29 views
5

Tôi có một ứng dụng LabVIEW mà hiện tại gửi dữ liệu đến một ứng dụng C++ thông qua một DLL. Bây giờ tôi cần gửi dữ liệu trở lại ứng dụng LabVIEW từ ứng dụng C++. Tôi có thể kích hoạt mã trong LabVIEW từ một cuộc gọi DLL hoặc tôi sẽ cần phải thăm dò ý kiến ​​các DLL định kỳ để xem liệu dữ liệu mới đang chờ đợi?Truy cập DLL không đồng bộ trong LabVIEW?

Hoặc tôi đang đi về điều này một cách hoàn toàn sai?

Trả lời

6

Có thể tạo sự kiện từ C++ để kích hoạt sự kiện LabVIEW bình thường.
Here là bài đăng trên diễn đàn của NI thảo luận về cấu trúc này. Và một trích đoạn mã từ chủ đề đó:

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

Và đây là mã nguồn gốc như một PNG: alt text http://vi-lib.com/forForum/eventDLL.PNG
Và đây là mã LabVIEW kèm theo:
alt text http://vi-lib.com/forForum/eventLV.PNG
Vòng lặp thấp là mã LabVIEW mà gửi một sự kiện DLL cho trình xử lý sự kiện LabVIEW. Điều này sẽ được đặt bên trong DLL của bạn. Một trong các tham số đầu vào phải là con trỏ sự kiện là U32.

Chúc may mắn,

Tôn

PS nếu bạn đang đi làm bổ nhào vào DLL và LabVIEW khả năng tương tác, chú ý đến tất cả mọi thứ RolfK nói, ông là một bậc thầy trong lĩnh vực đó.

+1

Giữa điều này và các ví dụ xuất hiện trong chuỗi được liên kết, tôi nên làm tốt. Cảm ơn! – dwj

+0

Có, sự xuất hiện là một phiên bản đơn giản của sự kiện. –

Các vấn đề liên quan