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字节)、不支持多线程、无法处理热插拔、缺乏错误恢复机制。一旦遇到复杂通信协议或多设备轮询场景,很容易出现丢包、阻塞或死锁。