VC编程之VC++ 6.0 中使用 MSComm.ocx
小标 2018-09-04 来源 : 阅读 851 评论 0

摘要:本文主要向大家介绍了VC编程之VC++ 6.0 中使用 MSComm.ocx,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之VC++ 6.0 中使用 MSComm.ocx,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

很多人喜欢单独安装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

 

 

 

 

 

 

 

 

 

 

 

先下载一个文件,下载地址:

//download.csdn.net/download/rabbit200808/3236756

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

解压后拷贝到:

C:\Windows\System32(WIN7系统);

C:\WINDOWS\system32(XP系统)。

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

 

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

Regsvr32  C:\WINDOWS\system32\MSCOMM32.OCX

注册成功如图所示:

 

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

 

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

 

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

 

 

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

然后找到Microsoft Communications Control,version 6.0

 

 

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

如之前的SetCommPort改成了Put_CommPort;

             GetInput     改成了Get_Input;

 

 

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

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

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

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

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

       {

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

              return -1;

       }

 

 

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

然后从列表里找即可 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程