之前有用过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, 1, 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多的转载,只能默默向原作者致敬,向无数百折不挠解决问题,分享办法的同志致敬!)

转载于:https://www.cnblogs.com/Davis812/p/3902743.html

解决VS2010使用mscomm控件无法接收数据的问题【转】相关推荐

  1. 解决VS2010使用mscomm控件无法接收数据的问题

    如果你正在使用2010,并且想用mscomm控件,遇到如下问题,那你可以看看这篇文章: 1. 添加了mscomm控件以及对应的控件变量以后发现以前mscomm的成员函数,类似setsettings() ...

  2. 怎样把vc6的MSComm控件接受的数据实时的显示在编辑框,并把数据实时惠存txt文件中

    怎样把vc6的MSComm控件接受的数据实时的显示在编辑框,并把数据实时存入txt文件中 我在做一个基于VC6的MSComm控件的电机上位机控制,数据帧格式采用9600bps,8位数据位,奇校验,1位 ...

  3. 串口MSComm控件五种不同校验方式对数据收发的影响

    (2008-09-10 14:50:00)   http://blog.sina.com.cn/s/blog_470eccc60100arq7.html   串口MSComm控件有五种校验方式,分别是 ...

  4. 《MSComm控件小结》

    一:在Visual C++ 6.0集成开发环境下,可以通过三种方法实现串口通信 1)运用MFC函数进行编程实现串口通信 2)运用MSComm控件进行编程实现串口通信 3)运用VC++运行库函数实现串口 ...

  5. vs2010串口开发(mscomm控件)_未在此计算机上注册ActiveX控件

    1.简介 在vs2010做串口开发时,当使用mscomm控件时,如果没有注册MSCOMM32.OCX,在运行工程时会弹出"未在此计算机上注册ActiveX控件"这个警告,解决方法如 ...

  6. VS2010如何安装MSComm控件

    VS2010在默认情况下是不包含MSComm控件的,MSComm是在VC6.0中的控件,据说MSComm控件有些缺陷,看来微软是打算放弃此控件了.不过对于已经熟悉使用此控件的人来说还是不太方便,我是那 ...

  7. VS2010如何添加MSCOMM控件

    VS2008后,就没有MSCOMM控件了,用户想用只能手动添加 下载MSCOM控件 (百度下载即可)(全名为:mscomm32.ocx) 控件注册 将控件复制到如下路径下: c:\windows\sy ...

  8. 解决使用MSComm控件过程中内存溢出的问题

    现在做的一个项目需要实现上位机和单片机的串口通信,为了方便,使用了MSComm控件,但写程序时在处理接收数据遇到了问题,程序可以编译通过,但运行的过程中,程序只要接收到串口发来的数据,就会弹出内存溢出 ...

  9. VC基于MSCOMM控件串口通讯

    在mfc中进行串口通讯最简单的方法莫过于在对话框中使用MSCOMM控件了,MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem). 还可以发送命 ...

最新文章

  1. JAVA单例模式:懒汉式,饿汉式
  2. mysql mydumper_系统运维|Mydumper-MySQL数据库备份工具
  3. 用FileZilla Server搭建ftp服务器
  4. 瑞幸咖啡首席技术官也离职了:并未参加公司财务造假
  5. python 文件IO
  6. 关于opencv设置视频的属性无效问题
  7. jquery 判断checkbox是否为空的三种方法
  8. plot sin 03-数据区域边界线的位置
  9. GitHub排名第一!免费最”强“12306抢票神器,程序员再不用跪求加速包!
  10. m73p黑苹果_现阶段最便宜的完美黑苹果配置是什么?
  11. DELPHI-Delphi常用类型及定义单元
  12. 【深度长文】老IT公司怎么做到像创业公司一样快
  13. javaweb主页设置
  14. Android开发工具类集合
  15. 裁员、年终奖减半:在公司打工,你永远不知道意外和明天哪个先来
  16. Logstash:导入 RSS feed 数据
  17. 【animation动画】
  18. Mac使用latex中文字体缺失
  19. 中国大学mooc程序设计入门C语言:素数和
  20. flink solt和并行度

热门文章

  1. HTML实体字符、ASCII码、URLEncoder、Base64、MD5
  2. 前淘宝技术专家谈12306:这个网站很神奇
  3. 即学即用英语会话词典
  4. 好用的小说小偷程序php,ptcms小说小偷程序最新漏洞
  5. SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别
  6. 【Spring boot 中 Excel 模板文件损坏问题】
  7. 腾讯云服务器关机了登不上,腾讯云服务器可以关机或者重启操作不?
  8. 上月和本月对比叫什么_线雕前后对比,线雕做完后要注意什么事项即将上线
  9. cJSON Note(4):转换字符串
  10. IBM ServeRAID Manager 9.30