LabVIEW 中的异步 DLL 访问?
我有一个 LabVIEW 应用程序,当前通过 DLL 将数据发送到 C++ 应用程序。 我现在需要将数据从 C++ 应用程序发送回 LabVIEW 应用程序。 我可以通过 DLL 调用触发 LabVIEW 中的代码吗?还是需要定期轮询 DLL 以查看是否有新数据在等待?
还是我以完全错误的方式处理这件事?
I have a LabVIEW application that current sends data to a C++ application via a DLL. I now need to send data back to the LabVIEW app from the C++ one. Can I trigger code in LabVIEW from a DLL call or will I need to poll the DLL periodically to see if new data is waiting?
Or am I going about this in completely the wrong way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以从 C++ 生成事件来触发正常的 LabVIEW 事件。
这里是 NI 论坛帖子讨论这个结构。
以及该线程的代码摘录:
这是 PNG 格式的原始源代码:
(来源:vi-lib.com)
以下是附带的 LabVIEW 代码:
下面的循环是 LabVIEW 代码,它将 DLL 事件发送到 LabVIEW 事件处理程序。
这应该放置在您的 DLL 中。
输入参数之一应该是 U32 形式的事件指针。
祝你好运,
Ton
PS,如果您打算深入研究 DLL 和 LabVIEW 互操作性,请注意 RolfK 所说的一切,他是该领域的大师。
It is possible to generate an event from C++ to trigger a normal LabVIEW event.
Here is a NI forums post discussing this structure.
And a code excerpt from that thread:
And here's the original sourcecode as a PNG:
(source: vi-lib.com)
And here is the accompanying LabVIEW code:
The lower loop is LabVIEW code that sends a DLL event to the LabVIEW event handler.
This should be placed inside your DLL.
One of the input parameters should be the event pointer as a U32.
Good luck,
Ton
PS if you are going do dive into DLLs and LabVIEW interoperability, pay attention to everything RolfK says, he is a guru in that field.