如果你正在使用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文件里会自动多出来以下代码

  1. BEGIN_EVENTSINK_MAP(CMscommTest3Dlg, CDialogEx)
  2. ON_EVENT(CMscommTest3Dlg, IDC_MSCOMM1, 1, CMscommTest3Dlg::OnCommMscomm1, VTS_NONE)
  3. END_EVENTSINK_MAP()
  4. void CMscommTest3Dlg::OnCommMscomm1()
  5. {
  6. // TODO: Add your message handler code here
  7. }
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控件已经控件变量已添加完毕,接下去就慢慢享受mscomm的奇妙功能吧~~

文章来自:drlsdrls关于2010下使用mscomm控件

解决VS2010使用mscomm控件无法接收数据的问题的更多相关文章

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

    之前有用过VC6的mscomm控件.所以这次也想继续用此控件实现此功能,结果没想到刚一上手还真的绕了不少弯子.主要是因为VC2010下对mscomm控件的添加,以及对控件成员变量的添加有点小繁琐,特此 ...

  2. MSComm控件进行串口编程的基本步骤

    Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控 ...

  3. 串口通信-MSComm控件使用详解

    串口通信-MSComm控件使用详解 2012年11月13日 09:35:45 他山之石可以攻玉 阅读数:37952更多 个人分类: 控件编程Delphi编程   MSComm 控件通过串行端口传输和接 ...

  4. C#串口通信:MSComm控件使用详解

    目  次MSComm控件两种处理通讯的方式CommPort属性RThreshold 属性CTSHolding 属性SThreshold 属性CDHolding 属性DSRHolding 属性Setti ...

  5. 在VS2010中如何添加MSCOMM控件,实现串口通讯

      参考文章:http://wenku.baidu.com/link?url=MLGQojaxyHnEgngEAXG8oPnISuM9SVaDzNTvg0oTSrrJkMXIR_6MR3cO_Vnh- ...

  6. ActiveX控件的基本操作方法以及如何在VS2010下使用控件

    在此,小编就介绍下ActiveX控件的基本操作方法以及如何在VS2010下使用控件,我们以一个程序为例, (1)      打开VS2010编译器(右键以管理员身份运行,因为ActiveX需要注册), ...

  7. MSComm控件与Win32 API操作串口有何区别?

    MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell]   收藏帖子 回复 我是一个小兵,在战场上拼命!   结帖率 83.33% 我以前用MSCo ...

  8. Visual Studio 2008 添加MScomm控件的方法

    1.下载MSCOMM.zip,解压后包含4个文件:MSCOMM32.OCX, MSCOMM.SRG, MSCOMM32.DEP, MSCOMM32.OCA 2.将Mscomm.srg, Mscomm3 ...

  9. Mscomm控件安装问题 License information for TMSComm not found.

    操作步骤: 1.打开delphi,菜单选择compoents->import Activex control,然后选择那个mscomm32.ocx安装即可. 2.注册MScomm控件   开始- ...

随机推荐

  1. TP5中的小知识

    在TP5中如果想用select 查询后,变成数组,用toArray()这个函数的话,必须在连接数据库中把 数据集返回类型变成 'resultset_type'=>'\think\Collecti ...

  2. php中Redis的扩展

    首先要下载 php_redis.dll 和 php_igbinary.dll 在官网(https://windows.php.net/downloads/pecl/snaps/redis/3.1.4/ ...

  3. 四维动规 洛谷P1004方格取数

    分析:这个题因为数据量非常小,可以直接用四维的DP数组 dp[i][j][k][l]表示第一个人走到位置(i,j),第二个人走到位置[k][l]时所取的数的最大和 状态转移方程可以轻松得出为:dp[i ...

  4. python:extend (扩展) 与 append (追加) 之间的天与地

    >>> li = ['a', 'b', 'c'] >>> li.extend(['d', 'e', 'f']) >>> li ['a', 'b', ...

  5. 6月16 ThinkPHP连接数据库及Model数据模型层--------查询及数据添加

    连接数据库配置及Model数据模型层 convertion.php config.php 1.在config.php做数据库连接配置 2.修改配置 /* 数据库设置 */ 'DB_TYPE' => ...

  6. URL与URI的含义及区别

    1.1 什么是URI? 简单点说:URI就是通用资源标志符,不理解是吧,我第一次听说也是不理解. 进一步说:网络上的一些资源(文档.图片.音频.视频.程序等)都是有一些通用资源标识(Universal ...

  7. 利用tablespace特性将数据库移动到新磁盘

    目前开发一台EC2的PostgreSQL服务器的磁盘空间已经严重不足,该磁盘非LVM,所以不考虑磁盘扩容方法,研发希望可以分区/data/02对应的/dev/xvdl1磁盘分担部分数据库的数据,这样也 ...

  8. oracle 日常设置

    查看缓冲区命令:list  执行save  1.sql 可以吧缓冲区的命令保存下来.  执行 @1.sql可以执行保存下来的内容:  show feedback 显示反馈信息,最后一行.  show ...

  9. mac bash 下使用vi 快捷方式——因为没有alt键 所以没有办法 用vi模式也非常方便的

    set -o emacs ##切到emacs模式 set -o vi ##切到vi模式 set -o ## 查看当前选项的设置状态 所以你只需要在.bashrc下加入 set -o vi 然后,使用E ...

  10. C#代码中如何比较两个日期的大小?

    C#中比较两个日期大小的方法 /// <summary> /// 比较两个日期大小 /// </summary> /// <param name="dateSt ...