VBA 中是不是有与 WSC32.DLL 库类似的处理串行通信的本机函数?

Posted

技术标签:

【中文标题】VBA 中是不是有与 WSC32.DLL 库类似的处理串行通信的本机函数?【英文标题】:Are there native functions in VBA that handle serial communication similar to how the WSC32.DLL library does?VBA 中是否有与 WSC32.DLL 库类似的处理串行通信的本机函数? 【发布时间】:2021-09-07 23:11:06 【问题描述】:

我正在尝试在 Access 中修复一些使用 MarshallSoft Computing 创建的 Windows 标准串行通信的 20 年前的 VBA 代码。 32 位版本停止工作。出于实施原因,在 VBA 中使用不需要安装新库的本机功能会容易得多。该代码仅使用了少数 WSC32 函数,如果 VBA 中有一个与这些函数并行的本机库,那就太好了。任何帮助表示赞赏!

【问题讨论】:

没有。坚持使用 MarshallSoft 库,升级只需 119 美元,而且是您可以获得的最好的。 【参考方案1】:
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" _
(ByVal lpFileName As String, ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, lpSecurityAttributes As Any, _
ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long

https://gist.github.com/heiswayi/f47dfd8dc38955322bef 是 David M. Hitchner 的例子。

搜索“Darren Richards Win32 comms API wrapper for VBA”给了我一些链接(在 Google 上,而不是在 Bing 上)到(较短的)Darren Richards 示例的帖子,但不是原始来源。

来自http://www.hardandsoftware.net/NETCommOCX.htm,NETCOMM.OCX 是在 VBA 中使用原始 MSCOMM32.OCX 的一种方式。我同意使用本机 Windows API 更简单,但如果您还想编写脚本,NETCOMM.OCX 可以在 VBS 中使用。

您可以只写入 COM1,但 VBA 文件系统对象在二进制和读取方面存在问题。 NTFS 使用与 BASIC 用于配置 COM 端口的相同语法在文件系统中创建分叉。 (而且 MS 从未实现过一个伪文件系统分支来恢复丢失的功能,而他们可以很容易地做到这一点)。因此,您实际上要么必须使用 comm 对象,要么必须使用 Windows API。

【讨论】:

以上是关于VBA 中是不是有与 WSC32.DLL 库类似的处理串行通信的本机函数?的主要内容,如果未能解决你的问题,请参考以下文章

Edge 浏览器是不是有与 NoScript 功能类似的插件?

AS3 是不是有与 Java 的 NumberFormat 类似的类

Xamarin - 是不是有与适用于 Android 的 Photokit (iOS) 类似的框架,或者是获取图库中所有图像的文件流的好方法?

如何处理 VBA 中的 DLL 错误?

获取 TypeError:wsc.require 不是 hyco-ws npm 包的功能

插件中是不是有与 Bootstrap 类等效的类