【发布时间】:2009-07-23 23:52:38
【问题描述】:
我有一个 LabVIEW 应用程序,它当前通过 DLL 将数据发送到 C++ 应用程序。我现在需要将数据从 C++ 发送回 LabVIEW 应用程序。我可以通过 DLL 调用触发 LabVIEW 中的代码吗?还是需要定期轮询 DLL 以查看是否有新数据在等待?
或者我是否以完全错误的方式处理这个问题?
【问题讨论】:
我有一个 LabVIEW 应用程序,它当前通过 DLL 将数据发送到 C++ 应用程序。我现在需要将数据从 C++ 发送回 LabVIEW 应用程序。我可以通过 DLL 调用触发 LabVIEW 中的代码吗?还是需要定期轮询 DLL 以查看是否有新数据在等待?
或者我是否以完全错误的方式处理这个问题?
【问题讨论】:
可以从 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 所说的一切,他是该领域的专家。
【讨论】: