[原创]VB6.0串口控件mscomm32.ocx 破解版,支持大于16的串口号

2020-01-07 19:26发布

本帖最后由 gtrajtr 于 2015-1-26 18:46 编辑

在坛子里看到有坛友抱怨VB6的串口控件mscomm32.ocx 不支持大于16的端口号,有时候使用不方便。
自己就顺手把它破了这个限制,端口号最高支持到255,一般情况应该足够用了。

另外,有坛友说mscomm32在64位系统下用不了,我没有遇到过这种情况。
mscomm32肯定是支持64位系统的,有些老项目的上位机软件是VB写的,一直在64位系统都用得好好的。

用VB写了个简单的测试程序,在win7 64bit下测试通过,串口是用CH340从USB转出来的串口,TX、RX断接,点TX,能正常收发数据。

截图,微软原版本的mscomm32.ocx,打开串口17出错
破解版mscomm32控件-254.png (34.9 KB, 下载次数: 0) 下载附件 2015-1-26 18:34 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
67条回答
modbus
1楼-- · 2020-01-10 11:27
搞不懂微软以前为什么要做这个限制
zsenbao
2楼-- · 2020-01-10 13:21
不错,用得着。
changshs
3楼-- · 2020-01-10 19:10
非常好!楼主厉害!
way2888
4楼-- · 2020-01-10 23:05
请教,这是用你的工程我只是增加COM6端口其余1点都没改,然后重新生成工程就这样了,我的是WIN7 64位的,用MSCOMM控件从来未正常过,用sscom33或saxcomm就一点问题也没有,不知这是什么问题呢?附上我修改过的工程,看在你的机上正常不?
if_else
5楼-- · 2020-01-11 01:20
 精彩回答 2  元偷偷看……
gtrajtr
6楼-- · 2020-01-11 05:11
本帖最后由 gtrajtr 于 2015-1-28 10:05 编辑
way2888 发表于 2015-1-27 21:03
请教,这是用你的工程我只是增加COM6端口其余1点都没改,然后重新生成工程就这样了,我的是WIN7 64位的,用MSCO ...


你的工程,我一打开就报错了。

可能是你VB安装的问题,或者是VB版本有问题。

注意到你重新保存的工程,引用控件的目录都错了,连接到64位的目录里面去,所以肯定是出错的。
VB6只有32位版本,是调用不了64位的动态库的。

在x64的Windows下,
WINDOWSsystem32 目录下的文件是64位的
WindowsSysWOW64 目录下的文件才是32位的

出错的:

  1. Type=Exe
  2. Form=Form1.frm
  3. Reference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#C:WINDOWSsystem32stdole2.tlb#OLE Automation
  4. Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSCOMM32.OCX
复制代码

我原本正常的:

  1. Type=Exe
  2. Form=Form1.frm
  3. Reference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#C:WindowsSysWOW64stdole2.tlb#OLE Automation
  4. Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSCOMM32.OCX
复制代码

MSCOMM32.OCX控件必须放在SysWOW64目录下
你可以试一下先反注册 MSCOMM32.OCX,删掉它,
重新复制一下好的 MSCOMM32.OCX到SysWOW64目录下,再重新注册一下看看

右键以管理员方式打开命令控制台

  1. regsvr32 /u mscomm32.ocx
  2. regsvr32  mscomm32.ocx
复制代码

再不行,删掉重装VB吧,一定要装MSDN原版的,安装完,必须打SP6补丁

一周热门 更多>