我有一个 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;
}
这是PNG的原始源代码:(
来源:vi-lib.com)
这里是随附的LabVIEW代码:
下面的循环是向LabVIEW事件处理程序发送DLL事件的LabVIEW代码。这应该放在您的 DLL 中。输入参数之一应该是作为 U32 的事件指针。
祝你好运,
吨
PS,如果您要深入研究 DLL 和 LabVIEW 互操作性,请注意 RolfK 所说的一切,他是该领域的专家。