为何注册了的MSComm32.ocx也不能用?

windgolly 2001-10-22 03:07:52
请大家参照:
http://www.csdn.net/expert/topic/333/333774.shtm
很急,
请高手指点指点.

还是再把内容贴一下:
为何我的TMSComm控件(MSCOMM32.ocx)安装后,在使用时出现以下提示:
License information for TMSComm not found. You cannot use this control in design mode.
提示不使用。但我的MSComm32.ocx已通过regsvr32.exe进行了注册。为何?
...全文
641 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
耙子 2001-10-27
  • 打赏
  • 举报
回复
csdn有一点不好就是没跟贴通知。
Setting 里面的停止位可不是通知是否通讯结束的,然是异步串行通讯的自己用的。
这个停止位可以是 0, 1.5, 1……
可是说和你的程序无关
windgolly 2001-10-24
  • 打赏
  • 举报
回复
当向一个秤上放物体时,当物体还没有完全稳定下来的时候,其显示屏上的数据也在不断的变化,这种变化是否是由Settings里面的停止位来控件,而其默认的1代表什么?
bluecrest 2001-10-23
  • 打赏
  • 举报
回复
可以用的
根本不要注册阿
要在builder中安装过就可以了阿
windgolly 2001-10-23
  • 打赏
  • 举报
回复
再次多谢 pazee(耙子) 老兄


各位大虾,因本人确属超级菜鸟,因此还有很多问题。
=======================================================
1:我怎样打开我的COM端口?为何我在OnComm事件中加上如:
Comm1->PortOpen();
编译时出错。
难道将一个TMSComm控件“拉”到窗口中,在OnComm事件中写上代码,运行程序也就能自动检测到COM端口传来的数据?

2:我从缓冲区接到的数据是什么形式的数据,怎样将它们转换成“数值”数据。

3:因我的“这杆枰”离我较远,所以一时无法调试,我想先将我的代码贴出来让各位大虾帮我看看,这样能不能接到数据:

A:我直接将一个TMSComm控件“拉”到窗口中,属性值全部使用默认值。如:
CommPort = 1;
DTREnable = true;
EOFEnable = false;
Handshaking = 0;
InBufferSize = 0;
InputLen = 0;
InputMode = 0;
OutBufferSize = 512;
ParityReplace = ?;
RThreshold = 0;
RTSEnable = false;
Settings = 9600,n,8,1;
SThreshold = 0;

B:再在TMSComm控件的OnComm事件中编写如下代码:
//Comm1->PortOpen();
System::OleVariant RxBuff;//定义要接收的缓冲。
AnsiString INDATA;
RxBuff=Comm1->Input;//读取数据
INDATA=Trim(VarToStr((Variant &)RxBuff));//->字符串
for(int i=1;i<=INDATA.Length();i++)
Panel1->Caption=IntToStr(INDATA.c_str()[i]);//我想显示字符串的10进制值

请问,如果运行这个程序,当秤上面的货物时,这样我窗口中的Panel1上面能显示正常的数值数据吗?
耙子 2001-10-23
  • 打赏
  • 举报
回复
亲情奉献,血本无归!

///////////////////////////////////////////////
MSComm 控件

MSComm 控件通过串行端口传输和接收数据,
为应用程序提供串行通讯功能。

1. 语法

MSComm

2. 说明

MSComm 控件提供下列两种处理通讯的方式:

1)事件驱动通讯是处理串行端口交互作用的一种非
常有效的方法。在许多情况下,在事件发生时需要
得到通知,例如,在 Carrier Detect (CD) 或
Request To Send (RTS) 线上一个字符到达或一个
变化发生时。在这些情况下,可以利用 MSComm 控
件的 OnComm 事件捕获并处理这些通讯事件。
OnComm 事件还可以检查和处理通讯错误。所有通
讯事件和通讯错误的列表,参阅 CommEvent 属性。

2)在程序的每个关键功能之后,可以通过检查
CommEvent 属性的值来查询事件和错误。如果应用
程序较小,并且是自保持的,这种方法可能是更可
取的。例如,如果写一个简单的电话拨号程序,则
没有必要对每接收一个字符都产生事件,因为唯一
等待接收的字符是调制解调器的"OK"响应。

每个使用的 MSComm 控件对应着一个串行端口。如
果应用程序需要访问多个串行端口,必须使用多个
MSComm 控件。可以在 Windows“控制面板”中改
变端口地址和中断地址。

尽管 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

属性 描述
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
///////////////////////////////////////////////
MSComm 控件常数

1. Handshake 常数

常数 值 描述
comNone 0 无握手。
comXonXoff 1 XOn/Xoff 握手。
comRTS 2 Request-to-send/clear-to-send 握手。
comRTSXOnXOff 3 Request-to-send 和 clear-to-send 握手皆可。

2. OnComm 常数

常数 值 描述
comEvSend 1 发送事件。
comEvReceive 2 接收事件。
comEvCTS 3 clear-to-send 线变化。
comEvDSR 4 data-set ready 线变化。
comEvCD 5 carrier detect 线变化。
comEvRing 6 振铃检测。
comEvEOF 7 文件结束。

3. Error 常数

常数 值 描述
comEventBreak 1001 接收到中断信号
comEventCTSTO 1002 Clear-to-send 超时
comEventDSRTO 1003 Data-set ready 超时
comEventFrame 1004 帧错误
comEventOverrun 1006 端口超速
comEventCDTO 1007 Carrier detect 超时
comEventRxOver 1008 接收缓冲区溢出
comEventRxParity1009 Parity 错误
comEventTxFull 1010 传输缓冲区满
comEventDCB 1011 检索端口 设备控制块 (DCB) 时的意外错误

4. InputMode 常数

常数 值 描述
comInputModeText 0 (缺省)通过 Input 属性以文本方式取回数据。
comInputModeBinary 1 通过 Input 属性以二进制方式检取回数据。



///////////////////////////////////////////////
CommEvent 属性:
返回最近的通讯事件或错误。该属性在设计时无
效,在运行时为只读。

------------------------------------------------
语法: object.CommEvent
------------------------------------------------

CommEvent 属性语法包括下列部分:
------------------------------------------------
部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
------------------------------------------------

说明

只要有通讯错误或事件发生时都会产生 OnComm 事件,
CommEvent 属性存有该错误或事件的数值代码。要确
定引发 OnComm 事件的确切的错误或事件,请参阅
CommEvent 属性。

CommEvent 属性返回下列值之一来表示不同的通讯错
误或事件。这些常数可以在该控件的对象库中找到。

通讯错误包括下列设置值:
------------------------------------------------
常数 值 描述
comEventBreak 1001 接收到一个中断信号。
comEventCTSTO 1002 Clear To Send 超时。在系统规定时间内传输一个字符时,Clear To Send 线为低电平。
comEventDSRTO 1003 Data Set Ready 超时。在系统规定时间内传输一个字符时,Data Set Ready 线为低电平。
comEventFrame 1004 帧错误。硬件检测到一帧错误。
comEventOverrun 1006 端口超速。没有在下一个字符到达之前从硬件读取字符,该字符丢失。
comEventCDTO 1007 载波检测超时。在系统规定时间内传输一个字符时,Carrier Detect 线为低电平。Carrier Detect 也称为 Receive Line Signal Detect (RLSD)。
ComEventRxOver 1008 接受缓冲区溢出。接收缓冲区没有空间。
comEventRxParity1009 奇偶校验。硬件检测到奇偶校验错误
comEventTxFull 1010 传输缓冲区已满。传输字符时传输缓冲区已满
comEventDCB 1011 检索端口的设备控制块 (DCB) 时的意外错误
------------------------------------------------

通讯事件包括下列设置值:
------------------------------------------------
常数 值 描述
comEvSend 1 在传输缓冲区中有比 Sthreshold 数少的字符。
ComEvReceive 2 收到 Rthreshold 个字符。该事件将持续产生直到用 Input 属性从接收缓冲区中删除数据。
ComEvCTS 3 Clear To Send 线的状态发生变化。
comEvDSR 4 Data Set Ready 线的状态发生变化。该事件只在 DST 从 1 变到 0 时才发生。
comEvCD 5 Carrier Detect 线的状态发生变化。
comEvRing 6 检测到振铃信号。一些 UART(通用异步接收— 传输)可能不支持该事件。
comEvEOF 7 收到文件结束(ASCII 字符为 26)字符。
------------------------------------------------

数据类型
Integer
///////////////////////////////////////////////
windgolly 2001-10-23
  • 打赏
  • 举报
回复
运行regsvr32.exe mscomm32.ocx 就可以了。

斑竹,为什么我只能加28分,我不是还有200多分的可用分吗?
smartdraw 2001-10-23
  • 打赏
  • 举报
回复
如何regsvr32.exe一个OCX呢?贴主能否赐教一下,
(问题解决了,总得....)
windgolly 2001-10-23
  • 打赏
  • 举报
回复
多谢谢pazee(耙子) 
问题终搞定了,
但遗憾的是没有帮助文件,我想VB上肯定带了帮助文件,
那位大哥帮我邮一分过来,本人将万分感谢!
windgolly@163.com
windgolly 2001-10-23
  • 打赏
  • 举报
回复
快下班了,我再推一下
希望明儿一早来,有些新的思路。
windgolly 2001-10-23
  • 打赏
  • 举报
回复
自己再推一下
csz_cmy 2001-10-23
  • 打赏
  • 举报
回复
不必用控件,参阅?给初学者:串口与线程及控件使用
Wingsun 2001-10-22
  • 打赏
  • 举报
回复
你自己加分啊!
别的地方的分是没有办法转过来的。
windgolly 2001-10-22
  • 打赏
  • 举报
回复
斑主,我想把
http://www.csdn.net/expert/topic/333/333774.shtm
中的分加到这里来,
怎么做?
windgolly 2001-10-22
  • 打赏
  • 举报
回复
我试一下,
忘了给分,
版主,怎样加分?
耙子 2001-10-22
  • 打赏
  • 举报
回复
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]
@="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"

把这个内容写成一个xxx.reg文件,
然后倒入注册表就行了。

居然没分?抠门!:(
耙子 2001-10-22
  • 打赏
  • 举报
回复
mscomm 有个许可的,否则只能使用,不能在开发的时候使用。
如果你安装了vb或者vb就有这个许可了,另外这个许可是个单独的reg文件,你可以自己导入注册表。
这个文件,我现在也没了:(
windgolly 2001-10-22
  • 打赏
  • 举报
回复
这个控件难道没有人用过吗?
windgolly 2001-10-22
  • 打赏
  • 举报
回复
那我如何是好?
难道到时我还得在我的客户的PC机上安装一个VB不成?
不可能.
BCB 2001-10-22
  • 打赏
  • 举报
回复
此'注册'可能是许可注册,不是WIndows中的注册
三杯倒 2001-10-22
  • 打赏
  • 举报
回复
这样很简单呀
加载更多回复(2)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧