MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell]

 
结帖率 83.33%
我以前用MSComm控件写了串口程序,感觉不是很好用。突然断电,重起就会出现问题。错误提示:port already open! 
    这次想用Win32 API操作串口,是不是比MSComm控件好用?
    Win32 API操作232串口,边读边发数据,编程时需要注意什么吗?

请大虾们指教!!

手机新出的赚钱方式,第一批成都人已经赚嗨了!广告 美胜商务 · 燨燚
问题点数:50分
 0 2007-08-23 14:23:17 回复次数18
引用 ・ 举报 ・ 楼主
一般来说,用API写出完整无缺的好程序,我觉得比较难。
当然是大多都是水平问题和很多细节问题,以前写过同步方式的,98下工作非常好,但换系统后出现问题。
目前的观念是用异步方式,编程用多线程。

你可以参考这个帖子的讨论。
http://community.csdn.net/Expert/TopicView3.asp?id=5631034

 
0 2007-08-23 15:06:15
引用 ・ 举报 ・ #1 得分:18
   
控件最终都是通过API实现的,只不过包装一下而已。

 
0 2007-08-23 15:17:15
引用 ・ 举报 ・ #2 得分:2
我现在水平一般,是不是还是用MSComm控件比较好?
MSComm控件与API没什么区别吗?
+++++++++++++++++++++++++++++++++++++++++++++++
搂主

 
0 2007-08-23 15:28:04
引用 ・ 举报 ・ #3 得分:0
fronz() —— 误人子弟!

楼主选用 Win32 API 是绝对正确的!

 
0 2007-08-23 15:39:12
引用 ・ 举报 ・ #4 得分:18
API好用一点,反正都是自己设计的代码,出什么问题可以自己修改

成都小哥手机赚钱方式,第一批人已经赚嗨了!广告 腾锐 · 燨燚
0 2007-08-23 15:39:44
引用 ・ 举报 ・ #5 得分:2
to:zaodt(至尊宝宝:我就在你身旁,关心永远不打烊!)

选用 Win32 API 是绝对正确的!
用API写出完整无缺的好程序,我觉得比较难。

这两句有矛盾么?

我当然主张用API串口编程。在原来的那个讨论贴中也是如此,只是觉得写的很满意比较困难一些(比用MS控件)。

 
0 2007-08-23 16:04:18
引用 ・ 举报 ・ #6 得分:0
建议楼主先用一些好的封装类编串口程序。比如CSerialPort类,里面也都有API函数的调用。

慢慢自己再用API写符合自己要求的专用代码,

 
0 2007-08-23 16:09:14
引用 ・ 举报 ・ #7 得分:0
CSerialPort类??
找不到,可以给我吗?
我的邮箱:beibei.hou@163.com

===========================
搂主

 
0 2007-08-23 16:25:41
引用 ・ 举报 ・ #8 得分:0
自己锻炼着写一下,未必就不是好事

 
0 2007-08-23 17:50:24
引用 ・ 举报 ・ #9 得分:2
刚发了一份,收一下,

成都25岁美女辞去工作去做这个,月入30K,惊呆他人!!广告 康之弘 · 燨燚
0 2007-08-23 20:20:31
引用 ・ 举报 ・ #10 得分:0
  
其实都差不多,用api相对麻烦一些。
通常在打开串口之前要判断它是否已经被打开或者被占用。

 
0 2007-08-23 21:02:53
引用 ・ 举报 ・ #11 得分:2
到codeproject.com上找pj.nauter的cserialport类吧,用的人一大堆.

 
0 2007-08-23 23:50:13
引用 ・ 举报 ・ #12 得分:2
串行通信是最简单的通信方式,如果说这个难的话,那什么USB、网络都不要做了!

API + 多线程 操作串行口,你可以把程序做的很细、很强!

而且,程序发布的时候,又没有那么多拖拖拉拉的东西!

 
0 2007-08-24 01:32:22
引用 ・ 举报 ・ #13 得分:0
   
控件只是一个包装。

但是因为这个包装,
用起来自然简单多了。

通常我的观点是,
掌握 API,使用空间【学习根本的,但是使用的确实相对简单的】

 
0 2007-08-24 07:55:51
引用 ・ 举报 ・ #14 得分:4
   
使用空间
==》
使用控件

2018手机新出的赚钱方式,第一批成都人已经赚嗨了!广告 利成 · 燨燚
0 2007-08-24 07:56:10
引用 ・ 举报 ・ #15 得分:0
呵呵,说了一句“用API写出完整无缺的好程序,我觉得比较难。”
就“误人子弟”了,

说中国话也要有逻辑,特别是对程序员,如果我犯了逻辑错误,那会比我犯了概念错误更觉得羞愧。

关于直接用API自己写难不难,是另外的问题,所以我只说了“我觉得比较难”,这只是个人看法。所有的网友,问问题也不过就是听个建议。

串口编程,可以说我做了不少,也比较关注这个技术,个人觉得还是很难用API写出很完美的程序,很多的细节需要注意,DCB设置、线程间数据共享、缓冲区设置等等等等,很多,而且用API写最简单的同步方式串口程序时确实存在问题,而OverLapped方式也确实复杂很多,这些都是我亲身遇到过的。所以我建议楼主参考我推荐的帖子中jhs1982419()提供的一些资料。如果有心还可以去搜索一些。

根据我的了解,目前国内搞仪器串口控制的大部分的中小企业都是用VB调用MS控件写的,少部分是借助封装类或其他控件写,用API直接写更少,何况用多线程的话必须考虑同步方式在跨平台方面出现的问题。可以这么说,能根据需要用API写出很流畅自如的串口程序,那么你可以很骄傲地去搞仪器控制的企业应聘去了。而且你可以对招聘者说,你跟龚建伟一样牛。:)

以上全都是个人意见,供大家参考。

 
0 2007-08-25 08:47:30
引用 ・ 举报 ・ #16 得分:0
那是你自己的理解吧!

如果说用VC++编写程序还要用 MSCOMM 控件的话,那还不如用VB得了。

VB岂不是更简单?

说白了,MSCOMM 控件其实是提供给 VC++ 以外的其它开发工具使用的。

我曾经用PowerBuilder开发程序,用到了这个控件,原因是PB无法操作串行口,这也是没有办法。

楼上所说的难处无非是多线程的处理,跟串行口的操作无关。

不过,话又说回来了,如果你不深入VC++编程,那你的水平又怎么提高。

想做出好的程序,多线程这关必须要闯过!

 
0 2007-08-25 11:41:55
引用 ・ 举报 ・ #17 得分:0
我来解读一下你的“程序”吧

那是你自己的理解吧!
-----不错,我所说的都是我的理解,难不成你的说法是大家普遍的认知?

如果说用VC++编写程序还要用 MSCOMM 控件的话,那还不如用VB得了。
VB岂不是更简单?说白了,MSCOMM 控件其实是提供给 VC++ 以外的其它开发工具使用的。
----似乎我还在误人子弟?甚至鼓励楼主用VB调MSCOMM控件?你到底知道不知道我所说的类似CSerial,CSerialPort这类的串口封装类与你所说的MSCOMM控件有何不同?怪不得你从PB搞出来的。

我曾经用PowerBuilder开发程序,用到了这个控件,原因是PB无法操作串行口,这也是没有办法。
楼上所说的难处无非是多线程的处理,跟串行口的操作无关。
-------楼主读写串口程序再加上前台操作,就本问题来说,可以说和多线程无关么?既然多线程本身复杂,那么直接写的那些串口读写的API函数不需考虑多线程问题么?用封装好的写多线程不清晰简单一些么?

不过,话又说回来了,如果你不深入VC++编程,那你的水平又怎么提高。
--------提高,这个说到点上了,当然需要提高,怎么提高?这是方法问题,有具体API函数的封装类的现成的源代码作为学习途径,不是一种提高方法么?

想做出好的程序,多线程这关必须要闯过!------后后,这个还用说么?看来你是过关了,那么恭喜了,你可以不误人子弟了。

 
0 2007-08-25 22:38:31

MSComm控件与Win32 API操作串口有何区别?的更多相关文章

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

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

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

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

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

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

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

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

  5. Delphi的TListView控件拖放选定行操作

    http://www.tansoo.cn/?p=401 Delphi的TListView控件拖放选定行操作的例子,效果图如下:TListView控件拖动选定行到指定位置 具体实现步骤: 一.新建一个D ...

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

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

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

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

  8. asp.net动态网站repeater控件使用及分页操作介绍

    asp.net动态网站repeater控件使用及分页操作介绍 1.简单介绍 Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功 ...

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

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

随机推荐

  1. 不要拿ERP的报表忽悠领导!——一个报表引发的企业经营反思

    文 | 帆软数据应用研究院船长 本文出自:知乎专栏<帆软数据应用研究院>——数据干货&资讯集中地 领导的经营决策能只依赖于ERP报表吗? 不能! 1. ERP报表个性化不足:企业经 ...

  2. Tsung CentOS 操作系统下搭建tsung性能测试环境_Part 1

    CentOS 操作系统下搭建tsung性能测试环境_Part 1 by:授客 QQ:1033553122 步骤1.下载软件安装包 CentOS-6.0-x86_64-bin-DVD1.iso jdk- ...

  3. Android项目实战(三十二):圆角对话框Dialog

    前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话框的"确定"按钮 难点:1.对话框边框圆角 ...

  4. NoHttp封装--01

    NoHttpActivity public class NoHttpActivity extends Activity implements View.OnClickListener { privat ...

  5. Expo大作战(二十九)--expo sdk api之registerRootComponent(注册跟组件),ScreenOrientation(屏幕切换),SecureStore,

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  6. JavaScript大杂烩1 - 理解JavaScript的类型系统

    随着硬件水平的逐渐提高,浏览器的处理能力越来越强大,本人坚信,客户端会越来越瘦,瘦到只用浏览器就够了,服务端会越来越丰满:虽然很多大型的程序,比如3D软件,客户端仍然会存在,但是未来的主流必将是浏览器 ...

  7. Android、IOS文字居中偏离的解决方案

    前言 移动端开发,经常会遇到的问题,就是文字居中.一般都只能往css方向去fix这个问题. 自己以前也用过position:relative;top:-*px的方式去解决.

  8. [20171227]表的FULL_HASH_VALUE值的计算.txt

    [20171227]表的FULL_HASH_VALUE值的计算.txt --//sql_id的计算是使用MD5算法进行哈希,生成一个128位的Hash Value,其中低32位作为HASH VALUE ...

  9. 洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句

    所有的编程语言里都有判断语句和循环语句. 判断语句则是用来分支程序流程的 循环语句则是为了实现一个效果,让程序的规律性的重复操作 不用说,分支和循环自然在python里也是有的 一,条件判断:if,i ...

  10. 【HANA系列】SAP HANA XS使用JavaScript数据交互详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...