本帖最后由 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 上传
你的工程,我一打开就报错了。
可能是你VB安装的问题,或者是VB版本有问题。
注意到你重新保存的工程,引用控件的目录都错了,连接到64位的目录里面去,所以肯定是出错的。
VB6只有32位版本,是调用不了64位的动态库的。
在x64的Windows下,
WINDOWSsystem32 目录下的文件是64位的
WindowsSysWOW64 目录下的文件才是32位的
出错的:
- Type=Exe
- Form=Form1.frm
- Reference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#C:WINDOWSsystem32stdole2.tlb#OLE Automation
- Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSCOMM32.OCX
复制代码我原本正常的:
- Type=Exe
- Form=Form1.frm
- Reference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#C:WindowsSysWOW64stdole2.tlb#OLE Automation
- Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSCOMM32.OCX
复制代码MSCOMM32.OCX控件必须放在SysWOW64目录下
你可以试一下先反注册 MSCOMM32.OCX,删掉它,
重新复制一下好的 MSCOMM32.OCX到SysWOW64目录下,再重新注册一下看看
右键以管理员方式打开命令控制台
- regsvr32 /u mscomm32.ocx
- regsvr32 mscomm32.ocx
复制代码再不行,删掉重装VB吧,一定要装MSDN原版的,安装完,必须打SP6补丁
一周热门 更多>