解决VS2010使用mscomm控件无法接收数据的问题【转】
之前有用过VC6的mscomm控件。所以这次也想继续用此控件实现此功能,结果没想到刚一上手还真的绕了不少弯子。主要是因为VC2010下对mscomm控件的添加,以及对控件成员变量的添加有点小繁琐,特此把个人实践的经验写下来以供新人参考。说明一下,本人用的xp+VS2010。
如果你正在使用2010,并且想用mscomm控件,遇到如下问题,那你可以看看这篇文章。
1. 添加了mscomm控件以及对应的控件变量以后发现以前mscomm的成员函数,类似setsettings(),commport(),都不见了
2. 在类向导里添加了消息响应函数OnMscomm之后无法进入
不要问我为什么这样做就可以解决这些问题,因为我也不知道原因,但是实践下来,按照以下步骤做,就可以解决这些问题。解决方法都是网上找来的,^_^
1. 首先,2010不支持mscomm控件,所以要注册mscomm控件,我看了两篇文章,都按照做了
http://blog.csdn.net/flydream0/article/details/8002012
http://hi.baidu.com/shareshow/item/6f8d48f60cd5d7d642c36ae7
简单来说,就是下载控件,注册控件,修改注册表
第一步:下载MSComm控件
下载地址:http://download.csdn.net/detail/flydream0/4583699
第二步:注册组件(遇到问题,见文章最后解决办法)
压缩包内包含四个文件:
MSCOMM.SRG
MSCOMM32.DEP
MSCOMM32.oca
mscomm32.ocx
复制到系统盘的C:\Windows\System32(WIN7系统)。 然后在运行里,输入:
Regsvr32 C:\winnt\system32\Mscomm32.ocx
然后会看到以下提示,说明注册成功了

第三步:修改注册表
在注册表中手工新建一个主键项:先在点击“开始”->"运行",再在中填入regedit命令打开注册表
找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键
4250E830-6AC2-11cf-8ADB-00AA00C00905
并将内容设置为:
kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
至此,mscomm控件注册完毕!
接下来就是如何在工程里添加mscoom控件了。
第一步:在工具箱的下图这个位置右键,选择choose item

第二步:在弹出的组件栏里选择“COM Components”下的"Microsoft communication control 6.0",然后工具箱里就会有一个电话图标了 
第三步:添加控件,也就是把电话图标拖到对话框里,并添加控件变量
添加空间以后,在控件上面右键,然后选择“add variable”,这个时候请特别注意,下图两个红框里面的文件会被自动添加到工程,并且文件
名都带“1”.如果你的工程里没有自动添加,或者文件名后面不带“1”,那么出错的可能性就很大了。网上有种帖子说,用右键工程-->添加MFC类-->
添加ActiveX的MFC类-->添加mscomm类定义,这样添加出来的文件个人实验下来是不带“1”的。我也不知道为什么,这两种方法大概都
可以,有空的话你可比较一下带“1”和不带“1”的两个cpp文件和h文件的区别。

第四步:添加消息响应函数
在控件上右键-->添加事件handle-->添加响应函数

这样添加以后cpp文件里会自动多出来以下代码:
BEGIN_EVENTSINK_MAP(CMscommTest3Dlg, CDialogEx)
ON_EVENT(CMscommTest3Dlg, IDC_MSCOMM1, , CMscommTest3Dlg::OnCommMscomm1, VTS_NONE)
END_EVENTSINK_MAP() void CMscommTest3Dlg::OnCommMscomm1()
{
// TODO: Add your message handler code here
}
注意,不要在控件上面右键用类向导添加消息响应函数,这样添加的消息响应函数是无法被触发的,我也不知道为什么,顺便求高人指点。
至此,mscomm控件已经控件变量已添加完毕
(注:以上部分来源于:drlsdrls《关于2010下使用mscomm控件》)
在注册时会遇到的问题:
关于WIN7下STCISP因MSCOMM32.OCX控件问题无法运行及解决方法
本人一直用的XP系统,调试单片机从来没有出现过问题。
前两天楼上的哥们买了新电脑,装的是WIN7系统,他也开始学单片机了,但是却发现stcisp下载程序无法打开,每次双击打开这个程序,都会弹出以下对话框

说“部件'MSCOMM32.OCX'或其附件之一不能正确注册:一个文件丢失或无效”。我顿时对win7的兼容性产生了不小的怀疑。
没有碰见过这种情况,就上网看看有没有先辈碰到这种问题并解决的。上网查询后发现这个问题的原因貌似是没有注册MSCOMM.OCX控件。于是我就下载了一份MSCOMM32的文件,把连同'MSCOMM32.OCX'在内的四个文件拷贝到了C:\windows\system32中去,又在CMD命令提示符中输入“regsvr32 mscomm32.ocx”,来在系统注册,结果又弹出错误对话框:说

“模块‘mscomm32.ocx’已加载,但对DllRegisterServer 的调用失败,错误代码为0x8002801c。有关此问题的详细信息,请将该错误代码用做搜索词进行联机搜索。”
也就是没有完全注册成功。
网上还有这样的方法,就是在注册表中手工新建一个主键项:先在点击“开始”,"运行",再在中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键
4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为:kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
尝试了一下,重启,发现仍然是“部件'MSCOMM32.OCX'或其附件之一不能正确注册:一个文件丢失或无效”。
很郁闷。不知所措,无奈地让那哥们给卖家打电话,说明情况,问如果这样是不是必须改成XP系统才能下载程序。我还在想这个应该算是电脑方面的问题,那边的老板主要还是搞单片机比较强一些,不知道他能不能解决。结果老板很有信心地说,这个问题很简单,单击右键点“以管理员身份运行”就可以了。试了一下,成功打开了。。。
唉,原来这个问题如此简单,害得我费半天功夫瞎整一气也没整出来。
(经验来源:抱歉我不能再找到原作者,只能找到N多的转载,只能默默向原作者致敬,向无数百折不挠解决问题,分享办法的同志致敬!)
解决VS2010使用mscomm控件无法接收数据的问题【转】的更多相关文章
- 解决VS2010使用mscomm控件无法接收数据的问题
如果你正在使用2010,并且想用mscomm控件,遇到如下问题,那你可以看看这篇文章: 1. 添加了mscomm控件以及对应的控件变量以后发现以前mscomm的成员函数,类似setsettings() ...
- MSComm控件进行串口编程的基本步骤
Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控 ...
- 串口通信-MSComm控件使用详解
串口通信-MSComm控件使用详解 2012年11月13日 09:35:45 他山之石可以攻玉 阅读数:37952更多 个人分类: 控件编程Delphi编程 MSComm 控件通过串行端口传输和接 ...
- C#串口通信:MSComm控件使用详解
目 次MSComm控件两种处理通讯的方式CommPort属性RThreshold 属性CTSHolding 属性SThreshold 属性CDHolding 属性DSRHolding 属性Setti ...
- 在VS2010中如何添加MSCOMM控件,实现串口通讯
参考文章:http://wenku.baidu.com/link?url=MLGQojaxyHnEgngEAXG8oPnISuM9SVaDzNTvg0oTSrrJkMXIR_6MR3cO_Vnh- ...
- ActiveX控件的基本操作方法以及如何在VS2010下使用控件
在此,小编就介绍下ActiveX控件的基本操作方法以及如何在VS2010下使用控件,我们以一个程序为例, (1) 打开VS2010编译器(右键以管理员身份运行,因为ActiveX需要注册), ...
- MSComm控件与Win32 API操作串口有何区别?
MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell] 收藏帖子 回复 我是一个小兵,在战场上拼命! 结帖率 83.33% 我以前用MSCo ...
- Visual Studio 2008 添加MScomm控件的方法
1.下载MSCOMM.zip,解压后包含4个文件:MSCOMM32.OCX, MSCOMM.SRG, MSCOMM32.DEP, MSCOMM32.OCA 2.将Mscomm.srg, Mscomm3 ...
- Mscomm控件安装问题 License information for TMSComm not found.
操作步骤: 1.打开delphi,菜单选择compoents->import Activex control,然后选择那个mscomm32.ocx安装即可. 2.注册MScomm控件 开始- ...
随机推荐
- 【转】AI类人工智能产品经理的丛林法则
本文转载自:https://blog.csdn.net/buptgshengod/article/details/77030338 AI是大家都很关注的领域,然而对于大部分想要入行的同学来讲,AI的算 ...
- 16款优秀的Vue UI组件库推荐
16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...
- FTR-B3GA003Z-信号继电器
IC名称:B3GA003Z 数据手册:链接:https://pan.baidu.com/s/1MNe-fcKNAnuXyRLxhfUhjA 密码:6mo2 芯片自拍照: 封装尺寸以及引脚说明: 信号电 ...
- LeetCode169 求众数
题目链接:https://leetcode-cn.com/problems/majority-element/ 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ ...
- jmeter插件使用说明
jmeter作为一个开源的接口性能测试工具,其本身的小巧和灵活性给了测试人员很大的帮助,但其本身作为一个开源工具,相比于一些商业工具(比如LoadRunner),在功能的全面性上就稍显不足. 这篇博客 ...
- jQuery安装和语法
jQuery是一个JavaScript函数库,可实现HTML元素选取及操作.CSS 操作.HTML事件函数.JavaScript特效和动画.HTML DOM遍历和修改.AJAX等功能. 在html中引 ...
- Python Redis hash
hash表现形式上有些像pyhton中的dict,可以存储一组关联性较强的数据 , redis中Hash在内存中的存储格式如下图: hset(name, key, value) # name对应的ha ...
- python学习笔记:深浅拷贝的使用和原理
在理解深浅拷贝之前,我们先熟悉下变量对象和数据类型 1.变量和对象 变量-引用-对象(可变对象,不可变对象) 在python中一切都是对象,比如[1,2],'hello world',123,{'k1 ...
- [笔记] SQL性能优化 - 避免使用 IN 和 NOT IN
WHY? IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢? 1.效率低 可以参看我之前遇到的一个例子([小问题笔记(九)] SQL语句Not IN 效率低,用 NOT EXISTS试试 ...
- Ngnix配置
server { listen 80; server_name www.local.test; root /data/workspace; index index.php index.html in ...