我有一个LabVIEW应用程序,当前通过DLL将数据发送到C ++应用程序。我现在需要将数据从C ++发送回LabVIEW应用程序。我可以从DLL调用中触发LabVIEW中的代码,还是需要定期轮询DLL以查看新数据是否在等待?
或者我是以完全错误的方式解决这个问题?
答案 0 :(得分:7)
可以从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:
(来源:vi-lib.com)
以下是随附的LabVIEW代码:
下部循环是LabVIEW代码,它将DLL事件发送到LabVIEW事件处理程序。
这应该放在你的DLL中。
其中一个输入参数应该是事件指针为U32。
吨
PS如果你要深入研究DLL和LabVIEW的互操作性,请注意RolfK所说的一切,他是该领域的大师。