VC++ 6.0 中使用 MSComm.ocx

摘要:
许多人更喜欢单独安装VC++6.0,而不是完全安装VS,这样占用的空间更小,启动速度也更快。然而,当您想要使用某些ActiveX控件时,您会遇到许可证问题,例如使用MSComm.ocx。MSComm.ocx是VS提供的串行通信控件。安装VS时,将自动向用户颁发相应的许可证,但此许可证由VB提供。现在我们不安装VB。因此,当我们将此控件插入到项目中时,将出现上述许可证问题。下面是另一种方法:在文本文件中输入REGEDIT4[HKEY_CLASSES_ROOTLicenses4250E830-6AC2-11cf-8ADB-00AA00C00905]@=“kjljvjjoqqmjjvpqkqmqyypoqjquoun”,并将其另存为注册表文件,例如lic.reg。

很多人喜欢单独安装VC++6.0,而不是完整安装VS,这样占用空间比较少,启动也快。但是要使用某些ActiveX控件的时候却会出现许可证问题(requires a design-time licence),譬如使用MSComm.ocx。至于ActiveX的许可证体系这里就不说了,简单说就是用来保证第三方ActiveX控件开发者的智力投资的。MSComm.ocx是VS自带的一个进行串口通讯的控件,本来在安装VS的时候会自动把相应的licence发放给用户,但是这个licence是由VB附带提供的,现在我们没有安装VB,因此当我们在插入该控件到我们的项目时,就会出现上述的许可证问题。     我们可以通过安装VB6.0来解决这个问题,但是如果我们平时很少用VB,就为了这个控件而安装的话就有点大材小用了,而且也违背了当初单独安装VC++的初衷。下面还有另外一种方法:在文本文件中输入(注意格式)

REGEDIT4 [HKEY_CLASSES_ROOTLicenses4250E830-6AC2-11cf-8ADB-00AA00C00905] @ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"

另存为一个注册表文件,如 lic.reg。然后双击。。好了,控件可以使用了。

update:下面的注册表文件更加全面。

REGEDIT HKEY_CLASSES_ROOTLicenses = Licensing: Copying the keys may be a violation of established copyrights.
// Masked Edit Control 6.0 license key HKEY_CLASSES_ROOTLicensesBC96F860-9928-11cf-8AFA-00AA00C00905 = mmimfflflmqmlfffrlnmofhfkgrlmmfmqkqj
// Chart Control 6.0 (OLEDB) license key HKEY_CLASSES_ROOTLicenses12B142A4-BD51-11d1-8C08-0000F8754DA1 = aadhgafabafajhchnbchehfambfbbachmfmb
// Common Dialog Control 6.0 license key HKEY_CLASSES_ROOTLicenses4D553650-6ABE-11cf-8ADB-00AA00C00905 = gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj
// ADO Data Control 6.0 (OLEDB) license key HKEY_CLASSES_ROOTLicensesC4145310-469C-11d1-B182-00A0C922E820 = konhqhioohihphkouimonhqhvnwiqhhhnjti
// Common Controls-3 6.0 license key HKEY_CLASSES_ROOTLicenses38911DA0-E448-11D0-84A3-00DD01104159 = mcpckchcdchjcjcclidcgcgchdqdcjhcojpd
// Windows Common Controls-2 5.0 (SP2) license key HKEY_CLASSES_ROOTLicenses9E799BF1-8817-11cf-958F-0020AFC28C3B = uqpqnqkjujkjjjjqwktjrjkjtkupsjnjtoun
// Windows Common Controls license key HKEY_CLASSES_ROOTLicenses57CBF9E0-6AA7-11cf-8ADB-00AA00C00905 = aahakhchghkhfhaamghhbhbhkbpgfhahlfle
// Data Bound Grid Control 5.0(SP3) license key HKEY_CLASSES_ROOTLicenses556C75F1-EFBC-11CF-B9F3-00A0247033C4 = xybiedobrqsprbijaegcbislrsiucfjdhisl
// Data Bound List Controls 6.0 license key HKEY_CLASSES_ROOTLicenses96EFC40-6ABF-11cf-850C-08002B30345D = knsgigmnmngnmnigthmgpninrmumhgkgrlrk
// Internet Transfer Control 6.0 license key HKEY_CLASSES_ROOTLicenses78E1BDD1-9941-11cf-9756-00AA00C00908 = yjrjvqkjlqqjnqkjvprqsjnjvkuknjpjtoun
// Multimedia Control 6.0 license key HKEY_CLASSES_ROOTLicensesB1EFCCF0-6AC1-11cf-8ADB-00AA00C00905 = qqkjvqpqmqjjpqjjvpqqkqmqvkypoqjquoun
// Chart Control 6.0 license key HKEY_CLASSES_ROOTLicenses7C35CA30-D112-11cf-8E72-00A0C90F26F8 = whmhmhohmhiorhkouimhihihwiwinhlosmsl
// Windows Common Controls-2 6.0 license key HKEY_CLASSES_ROOTLicenses4F86BADF-9F77-11d1-B1B7-0000F8753F5D = iplpwpnippopupiivjrioppisjsjlpiiokuj
// Windows Common Controls 6.0 license key HKEY_CLASSES_ROOTLicensesED4B87C4-9F76-11d1-8BF7-0000F8754DA1 = knlggnmntgggrninthpgmnngrhqhnnjnslsh
// Comm Control 6.0 license key HKEY_CLASSES_ROOTLicenses4250E830-6AC2-11cf-8ADB-00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
// DataGrid Control 6.0 (OLEDB) license key HKEY_CLASSES_ROOTLicensesCDE57A55-8B86-11D0-b3C6-00A0C90AEA82 = ekpkhddkjkekpdjkqemkfkldoeoefkfdjfqe
// DataList Control 6.0 (OLEDB) license key HKEY_CLASSES_ROOTLicensesA133F000-CCB0-11d0-A316-00AA00688B10 = cibbcimbpihbbbbbnhdbeidiocmcbbdbgdoc
// DBWin license key HKEY_CLASSES_ROOTLicensesD015B071-D2ED-11d0-A31A-00AA00688B10 = gjdcfjpcmjicjcdcoihcechjlioiccechepd
// MSDBRPT license key HKEY_CLASSES_ROOTLicenses9DF1A470-BA8E-11D0-849C-00A0C90DC8A9 = cchcqjejhcgcqcfjpdfcdjkckiqikchcojpd
// FlexGrid Control 6.0 license key HKEY_CLASSES_ROOTLicenses72E67120-5959-11cf-91F6-C2863C385E30 = ibcbbbebqbdbciebmcobmbhifcmciibblgmf
// MAPI Controls 6.0 license key HKEY_CLASSES_ROOTLicenses899B3E80-6AC6-11cf-8ADB-00AA00C00905 = wjsjjjlqmjpjrjjjvpqqkqmqukypoqjquoun
// MSRDO 2.0 license key HKEY_CLASSES_ROOTLicensesB1692F60-23B0-11D0-8E95-00A0C90F26F8 = mjjjccncgjijrcfjpdfjfcejpdkdkcgjojpd
// RemoteData Control 6.0 license key HKEY_CLASSES_ROOTLicenses43478d75-78e0-11cf-8e78-00a0d100038e = imshohohphlmnhimuinmphmmuiminhlmsmsl
// Windowless Controls 6.0 license key HKEY_CLASSES_ROOTLicenses80E80EF0-DBBE-11D0-BCE2-00A0C90DCA10 = qijimitpmpnpxplpvjnikpkpqoxjmpkpoivj
// PictureClip Control 6.0 license key HKEY_CLASSES_ROOTLicenses6FB38640-6AC7-11cf-8ADB-00AA00C00905 = gdjkokgdldikhdddpjkkekgknesjikdkoioh
// Rich TextBox Control 6.0 license key HKEY_CLASSES_ROOTLicensesDC4D7920-6AC8-11cf-8ADB-00AA00C00905 = iokouhloohrojhhhtnooiokomiwnmohosmsl
// Sheridan Tab Control license key HKEY_CLASSES_ROOTLicenses190B7910-992A-11cf-8AFA-00AA00C00905 = gclclcejjcmjdcccoikjlcecoioijjcjnhng
// SysInfo Control 6.0 license key HKEY_CLASSES_ROOTLicensesE32E2733-1BC5-11d0-B8C3-00A0C90DCA10 = kmhfimlflmmfpffmsgfmhmimngtghmoflhsg
// Winsock Control 6.0 license key HKEY_CLASSES_ROOTLicenses2c49f800-c2dd-11cf-9ad6-0080c7e7b78d = mlrljgrlhltlngjlthrligklpkrhllglqlrk
 
 
 
 
 
 
 
 
 
 
 
  1. 先下载一个文件,下载地址:

    http://download.csdn.net/download/rabbit200808/3236756

    压缩包包含四个文件:MSCOMM.SRG、MSCOMM32.DEP、MSCOMM32.oca、mscomm32.ocx;

    解压后拷贝到:

    C:WindowsSystem32(WIN7系统);

    C:WINDOWSsystem32(XP系统)。

    注意:64位win7系统还需要将mscomm32.ocx文件复制到C:WindowsSysWOW64目录下,否则后面注册会出错。

  2.  

    在C:WindowsSystem32里找到cmd.exe以管理员身份运行:

    Regsvr32  C:WINDOWSsystem32MSCOMM32.OCX

    注册成功如图所示:

    vs2013中MSComm通讯控件的导入和注意事项
  3.  

    修改注册表:win+R组合键打开“运行”或者直接在开始菜单里找到“运行”;输入regedit后回车,打开注册表管理器,在其中找到HKEY_CLASSES_ROOT项下的Licenses项,添加主项命名为“4250E830-6AC2-11cf-8ADB-00AA00C00905”,并将键值修改为“kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun”

    vs2013中MSComm通讯控件的导入和注意事项
  4.  

    新建MFC工程:在VS 2013中新建一个MFC项目,比如基于对话框的一个项目

    vs2013中MSComm通讯控件的导入和注意事项
  5.  

    添加MSComm控件:在对话框上右击选择“打开ActiveX控件”,英文版“InsertActiveX Control”找到Microsoft Communications Control,version 6.0,此时在对话框中出现一个电话一下的按钮,这个就是MSComm控件,软件运行时是看不见的

    vs2013中MSComm通讯控件的导入和注意事项
    vs2013中MSComm通讯控件的导入和注意事项
  6.  

    添加控件的另外一种方法是在 菜单栏 工具》选择工具箱项》COM组件

    然后找到Microsoft Communications Control,version 6.0

    vs2013中MSComm通讯控件的导入和注意事项
  7.  

    MSComm控件函数使用:新版本的Visual studio使用MSComm时之前很多以Set开头或者Get开头的函数都改成了以Put_开头或者Get_开头。

    如之前的SetCommPort改成了Put_CommPort;

                 GetInput     改成了Get_Input;

  8.  

    MSComm控件Create()函数运行时报错问题:

    程序编译通过但运行时报错如图,解决方法:

    对于MSComm的关联变量在创建前需要先销毁窗口,如下程序段:

           mycomm.DestroyWindow();           //mycomm为MSComm的关联变量

           if(!mycomm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1))

           {

                  AfxMessageBox("创建MSComm控件失败");

                  return -1;

           }

    vs2013中MSComm通讯控件的导入和注意事项

dlg点鼠标右键,选:insert activex control...

然后从列表里找即可

VC++ 6.0 中使用 MSComm.ocx第8张

免责声明:文章转载自《VC++ 6.0 中使用 MSComm.ocx》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VS2019 C++动态链接库的创建使用(1)将默认的Netbeans中文版设置为英文界面/如何将Netbeans 6.5设置为英文界面下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Asp.net中使用ActiveX控件

在asp.net项目项目中,使用了一个第三方的没有签名的ActiveX控件,代码如下: <SCRIPT LANGUAGE="JavaScript"> function Print(){printClass.PrintBar("0405-0300-0056<@>大客车(柯斯达)<@>车辆<@>2010年7月21...

Java调用ocx控件以及dll

http://lvqingboy-163-com.iteye.com/blog/769358 通过Java调用OCX控件有几种方法,JNI、JACOB、Jawin等 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐。 2.Jawin 尝试了一下,效果不错,但相对来说,其编程风格更贴近Windows,离Java有点远 。 3.Jac...

.Net魔法堂:史上最全的ActiveX开发教程——ActiveX与JS间交互篇

一、前言                             经过上几篇的学习,现在我们已经掌握了ActiveX的整个开发过程,但要发挥ActiveX的真正威力,必须依靠JS。下面一起来学习吧! 二、JS调用ActiveX方法                     只需在UserControl子类中(即自定义的ActiveX控件中),编写公共方法即可...

Qt中使用ActiveX控件

(转自:http://blog.csdn.net/tingsking18/article/details/5403038) 在Qt中使用ActiveX控件 Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件。ActiveQt包含了两个组件QAx...

NTKO OFFICE文档控件

目录 前言 什么是ntko 准备工作 实战演练 总结 一、前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便。 有一些第三方ActiveX浏览器控件:比如科瀚的SOAOffice中间件、卓正软件的pageoffice控件、WebOffice控件还有我这篇文 章所要说...

Html页中使用OCX控件

原文:http://blog.csdn.net/mouse8166/article/details/5515657 最近准备开发一个b/s架构的应用程序需要用到activeX控件,web服务器尚未进入编码阶段,偶手上已有原用于vc客户端程序中的ocx控件,想测试一下此控件在普通网页上执行功能有无偏差,于是搞了个简单的html静态页面调用来测试OCX控件。...