mscomm32.ocx串口插件的注册方法

  mscomm32.ocx 是微软 Visual Basic 6.0 的老式 32 位串口控件(也叫插件),VB6 整体已经在 2008 年停止主流支持、2018 年停止扩展支持。

  若要在64位 的win10系统上,使用mscomm32.ocx插件,则需要把mscomm32.ocx文件,拷贝到C:\Windows\SysWOW64目录里,然后注册该文件。

  若要在32位 的XP系统上,使用mscomm32.ocx插件,则需要把mscomm32.ocx文件,拷贝到C:\Windows\System32目录里,然后注册该文件。

1 在64位系统上注册mscomm32.ocx

1.1 拷贝到C:\Windows\SysWOW64目录

  将mscomm32.ocx文件,拷贝到C:\Windows\SysWOW64目录里,然后注册该文件。

cpp 复制代码
copy mscomm32.ocx %systemroot%\SysWOW64\ /y

1.2 在SysWOW64里注册该文件

  点击桌面左下角的开始 --> Windows系统 --》 命令行工具 --》 以管理员方式打开,然后,输入如下命令:

cpp 复制代码
%systemroot%\SysWOW64\Regsvr32 %systemroot%\SysWOW64\mscomm32.ocx

  在64位系统上,注册该ocx插件,如图(1.2)所示:

图(1.2) 在64位系统上,注册该ocx插件

1.3 添加到注册表

  以管理员方式,在CMD黑框框里, 输入如下命令:

cpp 复制代码
reg add "HKCR\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905" /v "" /d "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" /y

2 在32位系统上注册mscomm32.ocx

2.1 拷贝到C:\Windows\System32目录

  将mscomm32.ocx文件,拷贝到C:\Windows\System32目录里,然后注册该文件。

cpp 复制代码
copy mscomm32.ocx %systemroot%\System32\ /y

2.2 在System32里注册该文件

  点击桌面左下角的开始 --> Windows系统 --》 命令行工具 --》 以管理员方式打开

输入如下命令:

cpp 复制代码
%systemroot%\System32\regsvr32 %systemroot%\System32\mscomm32.ocx

  在32位的系统上,注册该ocx插件,如图(2.2)所示:

图(2.2) 在32位系统上,注册该ocx插件

2.3 添加到注册表

  以管理员方式,在CMD黑框框里, 输入如下命令:

cpp 复制代码
reg add "HKCR\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905" /v "" /d "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" /y

3 检查mscomm32.ocx是否注册好

  双击OleView.exe --》Object Classes --》Controls --》找到Microsoft Communications Control, version6.0(SP6)即可。

  • 若存在"Microsoft Communications Control, version6.0(SP6)",表示mscomm32.ocx已经注册;
  • 若没有,则说明mscomm32.ocx没有注册;

  如图(3)所示,在64位的win10系统上,使用OleView.exe,查看已经注册的mscomm32.ocx。

图(3) 使用OleView.exe,查看mscomm32.ocx的注册信息

附录

1 取消注册mscomm32.ocx

r 复制代码
## 对于32位系统
%systemroot%\System32\regsvr32 /u %systemroot%\System32\mscomm32.ocx

## 对于64位系统
%systemroot%\SysWOW64\regsvr32 /u %systemroot%\SysWOW64\mscomm32.ocx

2 mscomm32.ocx的缺点

  mscomm32.ocx的缓冲区固定大小(默认为1024字节)、不支持多线程、无法处理热插拔、缺乏错误恢复机制。一旦遇到复杂通信协议或多设备轮询场景,很容易出现丢包、阻塞或死锁。

相关推荐
shada15 小时前
Boost.Process v2 在旧内核上报 `assign: Bad file descriptor`
c++
别动我齐刘海16 小时前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
朝朝辞暮i17 小时前
C++第 2 课
c++
代码中介商17 小时前
C++ 预约系统实战(三):服务端实现——libevent 事件驱动与业务路由
c++·json·c/s
布莱克60518 小时前
C++中的内存分区详解
c++
All for pursuit.18 小时前
【链表-9】146.LRU缓存
数据结构·c++·算法·leetcode
j7~20 小时前
【C++微服务项目开发脚手架】(接口篇一)gflags + gtest + spdlog 接口学习笔记
c++·学习·gtest·项目开发·spdlog·gflags·c++项目微服务开发脚手架
星期八不上发条20 小时前
智能指针是什么?使用场景,循环引用解决办法,面试回答
开发语言·c++·stl
ao-weilai20 小时前
Linux网络编程:Socket UDP
linux·服务器·网络·c++
.YM.Z21 小时前
C++——【继承】的底层逻辑与【多态】实现机制
c++·多态·继承