【问题标题】:How could I add NI-VISA (national instrument Virtual Instrument Software Architecture) in my project如何在我的项目中添加 NI-VISA(国家仪器虚拟仪器软件架构)
【发布时间】:2016-07-05 23:05:08
【问题描述】:

我上一个帖子不清楚,所以我希望这次我能把我的问题说得更清楚,并提供尽可能多的信息。

我正在尝试编写一个 Visual Basic 程序以通过 GBIP 与电负载 (6060B) 对话。我正在使用 Visual Studio 2013,我使用的目标框架是 .NET FRAMEWORK 4.5。在网上搜索后,我决定使用 National Instrument 的 VISA 库。
所以问题是如何将 VISA 库引用到我的项目中,以便我可以使用提供的函数。我做了研究,我知道我必须将 visa32.dll 链接到我的项目,但它失败了。
我尝试使用 regsrv32 命令注册 visa.dll,但也失败了。然后我尝试了一些新的东西,我将 visa32.bas 放在项目文件夹中,这样我就可以使用签证库中的所有功能;但是,它产生了一个抱怨“全局”关键字的错误。

例如全局常量 VI_SPEC_VERSION = &H00300000&..

编译器抱怨“全局”。我怎么能解决这个问题?

我想我现在已经没有主意了。任何命中或建议将不胜感激。
先感谢您。

【问题讨论】:

  • 那是VB6,与VB.Net完全不同。您可能需要使用 COM 互操作,或将其代码移植到 VB.Net。
  • 您好 SLaks,感谢您的回复。对我来说,我使用VB6和VB.net都没有关系,因为我从不使用它们,所以我愿意使用它们中的任何一个。我只想选择一个,这样我就可以使用 VISA 了。那么你知道如何将 VISA 引用到我的项目中吗?
  • 如果你想在 VB6 项目而不是 VB.Net 中使用源代码,你不能用 Visual Studio 2013 做到这一点,你需要一个 VB6 的副本(大约 14几年前)。另一种方法是使用 COM Interop(如@SLaks 所说)来使用已编译的 DLL。尝试研究 COM 互操作以获取有关如何做到这一点的指针。
  • 比“全局”更大的问题是该文件的其余部分只不过是 PInvoke 声明。如果你想使用 VB.NET,每一个都需要修改
  • 嗨布莱克伍德,感谢您的回复。我仍然想确保我理解你所说的。您的意思是我可以忘记“VISA 库”并专注于 COM 互操作(库??)。但是,COM 互操作不是一个库(根据我的理解),它是一种可以在 .NET 和 COM 对象之间进行转换的技术。我假设在 COM 互操作中(我现在只是将其视为一个库)还有另一组与 VISA 库相同的“函数”,因为它们基本上都是 NI-488.2 函数的包装器。例如。 ibwrt 。感谢您的耐心等待。

标签: vb.net visual-studio visa


【解决方案1】:

正如 cmets 中所述,您的问题似乎是您试图在 VB.NET 中使用旧的 VB6 库。要从 VB.NET 使用 VISA,请尝试以下操作:

  • 从 National Instruments website 安装 NI VISA(单击此页面上的下载链接,然后找到最新版本的 NI-VISA)。
  • 删除项目中对 visa32.dll 的任何引用。
  • 在您的项目中添加对 Ivi.Visa 和 NationalInstruments.Visa 的引用。这些应该包含您需要的所有命令。

【讨论】:

  • 嗨 RPM,我按照说明进行操作。我从“程序集”下的“添加参考”在我的项目中添加了 lvi.Visa 和 Nationalinstruments.Visa。然后,当我在我的项目中键入“Dim stat As ViStatus”时,编译器仍然抱怨“未定义 ViStatus”。我错过了一些步骤吗?谢谢
  • 我想我的问题可以缩小如何将 NI-VISA 添加到参考中。看来我必须添加 NationalInstrumentNS.dll,但我找不到该位置。我从 NI 论坛得到这个想法。这是链接forums.ni.com/t5/Measurement-Studio-for-NET/…
【解决方案2】:

经过大量研究,我终于弄明白了。
VISA 在 COM、C、.Net 中有 API。由于我使用的是 .NET Framework 4.5,因此我必须使用 VISA.NET API。现在我知道为什么当我写 ViSession 时,编译器会抱怨,因为 ViSession 是在 VISA C 而不是 VISA.NET 中覆盖的。那么剩下的问题就是添加对项目的引用。按照下面的链接,你会成功的。
http://www.ni.com/tutorial/2739/en/ 在这里,我感谢所有发布 cmets 引导我走上正轨的人。我希望我的回答也能对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2011-11-15
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多