【发布时间】: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