【问题标题】:How can I invoke a .Net DLL from a LabView 6.1 VI?如何从 LabView 6.1 VI 调用 .Net DLL?
【发布时间】:2011-01-14 05:36:32
【问题描述】:

我在一家使用 LabView 测试我们制造的设备的制造公司工作。大多数测试工程师都使用 7.1,它可以本地引用 .Net 程序集。但是,有一个小组卡在 LabView 6.1 上。我希望他们能够使用我的 .Net 程序集,它基本上是某些 Web 服务的代理。

我创建了一个测试程序集,它只不过是 Hello World,我正试图在 VI 中使用它。我让它 COM 可见,并用 regasm.exe 注册它并创建了一个类型库,我不确定我是否需要它。当我打开“添加引用”窗口时,我可以在 Visual Studio 的 COM 对象列表中看到它,因此我知道它已正确注册。

我对 VI 非常陌生。我只是在看它,因为我在制造业中与之交谈过的任何人都不知道在 VI 中调用 COM 对象。我基本上是在寻找一些控件名称或菜单选项,以使测试工程师指向正确的方向。

我在 Google 和 NI 论坛上进行了大量网络搜索,但没有找到太多。

另外,编写一个 C 或 C++ DLL 来充当我的 .Net DLL 的代理会更容易吗?或者有没有一种简单的方法可以从 VI 调用 Web 服务?这可能完全不需要 DLL。

我目前正在阅读this document from NI 寻求帮助,但它显然对 .Net 一无所知,并且可能无法帮助我选择最佳的前进道路。

【问题讨论】:

    标签: .net labview


    【解决方案1】:

    哇,LabView 6.1!一个很棒的版本,但现在 8 年或更长时间不受支持。不过,我认为 COM 接口并没有太大变化。

    以下是向 LabView VI 添加 COM/ActiveX dll 的方法:

    1. 打开一个新 VI
    2. 转到前面板
    3. 右键单击,引用句柄 -> “自动化引用句柄”(这是您要查找的流行词)
    4. 右键单击,属性 -> 选择 ActiveX 类

    如果您能以这种方式找到您的 ActiveX 功能,那么您的状态就很好。 LabView的属性节点和调用节点对应属性和方法。

    Web 服务只是一个 http 调用 GET 或 POST,所以这将始终有效。但是,您将自己进行解析。 (另外,LV 6.1 没有内置 http GET/POST,所以我以前通过 ActiveX 使用 WinHTTP 来执行这些操作。)

    【讨论】:

    • 感谢控件名称。我找到了我的类,并且能够向我的图表添加一个实例和一个方法调用。这些方法只是一个返回字符串的 Hello World 方法。我添加了一个字符串指示器并将其从方法的输出连接起来(我认为)。然而,当我运行 VI 时,字符串指示器中什么也没有出现。我得找一位测试工程师帮我试一试。我不知道我在做什么。
    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多