2009-07-23 10 views
5

J'ai une application LabVIEW qui envoie des données à une application C++ via une DLL. J'ai maintenant besoin de renvoyer des données à l'application LabVIEW à partir de l'application C++. Puis-je déclencher du code dans LabVIEW à partir d'un appel DLL ou dois-je régulièrement interroger la DLL pour voir si de nouvelles données sont en attente? Ou est-ce que je vais à ce sujet dans le mauvais sens?Accès DLL asynchrone dans LabVIEW?

Répondre

6

Il est possible de générer un événement à partir de C++ pour déclencher un événement LabVIEW normal.
Here est un message sur les forums NI traitant de cette structure. Et un extrait de code de ce fil:

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

Et voici le code source original comme PNG: alt text http://vi-lib.com/forForum/eventDLL.PNG
Et voici le code LabVIEW accompagne:
alt text http://vi-lib.com/forForum/eventLV.PNG
La boucle inférieure est le code LabVIEW qui envoie un événement DLL au gestionnaire d'événements LabVIEW. Cela devrait être placé dans votre DLL. L'un des paramètres d'entrée doit être le pointeur d'événement en U32.

Bonne chance,

Ton

PS si vous allez plonger dans do DLL et l'interopérabilité LabVIEW, attention à tout ce que dit RolfK, il est un gourou dans ce domaine.

+1

Entre ceci et les exemples d'occurrence dans le fil lié je devrais être bon aller. Merci! – dwj

+0

Oui, une occurrence est une version simple d'événements. –