我有一个LabVIEW应用程序,当前通过DLL将数据发送到C++应用程序.我现在需要将数据从C++发送回LabVIEW应用程序.我可以从DLL调用中触发LabVIEW中的代码,还是需要定期轮询DLL以查看新数据是否在等待?
或者我是以完全错误的方式解决这个问题?
可以从C++生成一个事件来触发正常的LabVIEW事件.
这是一个讨论这种结构的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;
}
Run Code Online (Sandbox Code Playgroud)
而这里的原始源代码作为PNG:
替代文字http://vi-lib.com/forForum/eventDLL.PNG
这里是附带的LabVIEW代码:
替代文字http://vi-lib.com/forForum/eventLV. PNG
下部循环是LabVIEW代码,它将DLL事件发送到LabVIEW事件处理程序.这应该放在你的DLL中.其中一个输入参数应该是事件指针作为U32.
祝好运,
吨
PS如果你要深入研究DLL和LabVIEW互操作性,请注意RolfK所说的一切,他是该领域的大师.