请问C++Builder6.0有什么比较好的串口控件么?

edmond98 2003-10-17 03:18:54
谢谢
...全文
324 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywpower 2003-11-25
  • 打赏
  • 举报
回复
将VB的串口通讯工具在BCB里面转换,在Active X选项里面回有一个黄色的电话出现,用它也可以啊
leonpard 2003-11-25
  • 打赏
  • 举报
回复
SPCOMM非常方便,而且非常稳定
vcl.vclxx.net上面也有,不过要自己搜索一下
baffling 2003-11-25
  • 打赏
  • 举报
回复
gz
fancy05 2003-10-28
  • 打赏
  • 举报
回复
Mscomm也可以
fall1979 2003-10-28
  • 打赏
  • 举报
回复
wuxq7311(小清),我按照你上面提供的网址下载了一个,但是使用的时候,在控件的OnReceiveData事件中编程运行的时候程序提示找不到该事件的入口,是不是控件有问题啊!
我不懂电脑 2003-10-28
  • 打赏
  • 举报
回复
MSComm
bullHEcow 2003-10-28
  • 打赏
  • 举报
回复
up
yjy1001 2003-10-28
  • 打赏
  • 举报
回复
在C++Builder下对端口的读写共有两种方法,一种为内嵌汇编语言,另一种为使用__emit__函数。

1 通过内嵌汇编语言实现端口的读写

在C++Builder中,汇编语句必须被包含在以关键字asm为起始的一对大括号中:
asm {
汇编语句1
……
}

利用内嵌汇编语言编制端口输出函数如下:
void OutPort(unsigned short port,unsigned char value)//port参数为输出端口地址,value参数为输出值
{
asm{
mov dx , port //把端口地址送到处理器DX寄存器中
mov al , value // 把value 送到处理器AL寄存器中
out dx , al // 把AL寄存器中的值送到端口
};

}

该函数将无符号字符型8位的数据value写入地址为port的端口上,port的数据类型是unsigned short ,16位无符号短整形。
利用内嵌汇编语言编制端口输入函数如下:

unsigned char InPort(unsigned short port)//port参数为输入端口地址,返回为输入值
{
unsigned char value ;
 asm{
mov dx , port // 把端口地址送到处理器DX寄存器中
in al, dx // 从DX指定端口中将一数据送到AL寄存器中
mov ind , value // 把AL寄存器中的值赋给value
};
return value; //返回端口数据
}

函数InPort从地址为port的端口读入一个无符号8位的字符型数据,其其参数只一个,即端口号。返回的数据为unsigned char类型的,为从端口读取的值。


2 通过__emit__函数实现端口的读写

__emit__ 函数一般极少用到。其用法如下:

void _ _emit_ _(argument, . . .);

该函数为C++Builder 的一个内部函数,调用的参数为机器语言指令。它在编译的时侯,将机器语言指令直接嵌入目标码中,不必借助于汇编语言和汇编编译程序。
如果想使用__emit__ 函数,必须熟悉80x86处理器的机器语言指令。如果调用的参数是错误机器语言指令,则程序将非正常运行,并很容易导致死机。

利用__emit__函数编制端口输出函数如下:

void OutPort(unsigned short port,unsigned char value)//port参数为输出端口地址,value参数为输出值
{
__emit__(0x8b,0x95,&port); // 把端口地址送到处理器EDX寄存器中
 __emit__(0x8a,0x85,&value); // 把value 送到处理器AL寄存器中
 __emit__(0x66,0xee); // 把AL寄存器中的值送到端口

}

利用__emit__函数编制端口输入函数如下:

unsigned char InPort(unsigned short port)//port参数为输入端口地址,返回为输入值
{
unsigned char value ;
 __emit__(0x8b,0x95,&port) ; // 把端口地址送到处理器DX寄存器中
 __emit__(0x66,0xec); // 从DX指定端口中将一数据送到AL寄存器中
 __emit__(0x88,0x85,&value); // 把AL寄存器中的值赋给value
return value; //返回端口数据
}

由这两种方法所编制的函数注释可以看出,它们每一句的功能都是一样的,只是一个是嵌入了汇编语言,另一个是直接使用机器语言。


3 应用举例

在C++Builder中,通过File/New Application菜单新建一工程。

在表单中加两个Button控件,Caption分别为“写端口”和“读端口”。

将第一种方法所编制的OutPort和InPort函数拷贝到表单的头文件中,并把这两个函数作为表单类的在表单类的公有成员函数。

分别双击两个Button控件,产生OnClick事件函数。在单元文件的.cpp文件添加如下代码:

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{
OutPort(0x378,0x00);//向地址为378H的端口输出数据
OutPort(0x379,0x00);//向地址为379H的端口输出数据
}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{
int value;
value=InPort(0x37a);//从地址为37aH的端口读入数据
}

//---------------------------------------------------------------------------

(注意,端口0x378-0x37f为打印口的I/O口,通过这种方法可以实现的打印机的控制。)

编译运行。

将将第二种方法所编制的OutPort和InPort函数拷贝到表单的头文件中,并把这两个函数作为表单类的在表单类的公有成员函数,以替代掉第一种方法所编制的OutPort和InPort函数。再编译运行,结果完全一样。

本程序的编程环境是Win98操作系统和C++Builder5.0编程语言。
mythsame 2003-10-27
  • 打赏
  • 举报
回复
还有一个叫做XCOMM也比较好用
fall1979 2003-10-27
  • 打赏
  • 举报
回复
mabc(甲骨文),偶也需要,能不能也给偶发一个,信箱:fall_wind@sina.com

谢谢 !
edmond98 2003-10-21
  • 打赏
  • 举报
回复
那里有spcomm下载那?

上面的网站连不上
mabc 2003-10-21
  • 打赏
  • 举报
回复
发出,请查收
edmond98 2003-10-21
  • 打赏
  • 举报
回复
tropic_of_cancer@163.com


thx
atulss 2003-10-21
  • 打赏
  • 举报
回复
我也要atulss@vip.sina.com
mabc 2003-10-21
  • 打赏
  • 举报
回复
留下信箱
yhz 2003-10-18
  • 打赏
  • 举报
回复
用 TurboPower 的 Aysnc Professional 很好,很方便。
edmond98 2003-10-18
  • 打赏
  • 举报
回复
连不上亚

cupidvenus 2003-10-18
  • 打赏
  • 举报
回复
spcomm
ge123 2003-10-18
  • 打赏
  • 举报
回复
spcomm
wuxq7311 2003-10-17
  • 打赏
  • 举报
回复
http://www.hktk.com/soft/soft_con_internet/spcomm.html 下载
加载更多回复(10)
实例很丰富详细,初学必备 \EXAMPLES ├─ADO │ ├─BRIEFCASE │ └─SHAPE ├─APPEVENTS ├─APPS │ ├─AUTOCON │ ├─AUTOSRV │ ├─CANVAS │ ├─COLORDLG │ ├─CURSORS │ ├─DOODLE │ ├─FINDREP │ ├─HEADER │ ├─IMAGEVIEW │ ├─IPCDEMOS │ ├─MINICOMP │ ├─MULTIPAG │ ├─OWNERLIST │ ├─PRINTING │ ├─PROCVIEW │ ├─RICHEDIT │ │ ├─DEU │ │ ├─ENU │ │ └─FRA │ ├─SCROLLBAR │ ├─SWITCH │ ├─SYSSOUND │ ├─TAB │ ├─THREADS │ ├─TRAYICON │ ├─TWOFORMS │ └─WPM ├─CODEGUARD ├─CONTROLS │ ├─SINGLEINST │ ├─SOURCE │ ├─TRAYDEMO │ └─VERSIONINFO ├─CONVERTIT ├─CORBA │ ├─ATM │ └─CORBAMIDAS ├─CUSTOMDRAW ├─DBTASKS │ ├─BKQUERY │ ├─CACHEDUP │ ├─CONTACTS │ ├─CSDEMOS │ ├─CTRLGRID │ ├─DBERRORS │ ├─FILTER │ ├─FIND │ ├─FISHFACT │ ├─GDS │ ├─GDSDEMO │ ├─IBDEMO │ ├─LOOKUP │ ├─MASTAPP │ ├─MTSPOOL │ ├─NAVMDI │ ├─NAVSDI │ ├─NDXBUILD │ ├─OBJREPOS │ ├─QBFDEMO │ ├─QJOIN │ ├─QUICKRPT │ └─TEXTDATA ├─DDRAW │ ├─DDRAW1A │ ├─DDRAW1B │ ├─DDRAW1C │ ├─DDRAW2 │ ├─DDRAW3 │ ├─DDRAWCP │ └─UTILS ├─DOC │ ├─AUTOPROJ │ ├─CBROWSE │ ├─DIROUTLN │ ├─FILMANEX │ ├─GRAPHEX │ ├─OLECTNRS │ ├─OLEWORD1 │ ├─OLEWORD2 │ ├─TEXTEDIT │ ├─VARARRAY │ ├─VARLOCK │ └─VARTOINT ├─DOCKING ├─EXPERTS ├─FASTNET │ ├─DAYTIME │ ├─ECHO │ ├─FINGER │ ├─FTP │ ├─HTTP │ ├─MSGDEMO │ ├─NNTP │ ├─POP3 │ ├─SMTP │ ├─STREAM │ ├─TIME │ └─URL ├─GAMES │ ├─EARTHPNG │ ├─FOOTBALL │ └─SWAT ├─ICONS ├─INDY │ ├─BASICCLIENTSERVER │ ├─ECHOCLIENT │ ├─ECHOSERVER │ ├─FINGERCLIENT │ ├─PARSEURI │ ├─PINGGUI │ ├─PROXY │ ├─QOTDCLIENT │ ├─SIMPLESERVER │ ├─SSLTUNNEL │ ├─TELNETCLIENT │ ├─TIMECLIENT │ ├─TIMESERVER │ ├─TRIVIALFTPCLIENT │ ├─TUNNEL │ ├─WHOISGUI │ └─ZIPCODELOOKUP ├─INTERNET │ ├─APACHEDSO │ │ └─HELLO │ └─CHAT ├─MFC │ ├─ADVANCED │ │ ├─CHATSRVR │ │ │ └─RES │ │ ├─CHATTER │ │ │ └─RES │ │ ├─CHKBOOK │ │ │ └─RES │ │ ├─COLLECT │ │ │ ├─L.JPN │ │ │ │ └─RES │ │ │ └─RES │ │ ├─CUBE │ │ │ └─RES │ │ ├─FIRE │ │ │ └─RES │ │ ├─MTGDI │ │ │ └─RES │ │ ├─MTMDI │ │ │ └─JPN │ │ ├─MTRECALC │ │ │ └─RES │ │ ├─MUTEXES │ │ │ └─RES │ │ ├─OLDBARS │ │ │ └─RES │ │ └─SPEAKN │ │ ├─JPN │ │ └─RES │ ├─CONTROLS │ │ ├─BUTTON │ │ └─CIRC1 │ ├─GENERAL │ │ └─CMNCTRLS │ │ └─RES │ ├─OLE │ │ ├─SUPERPAD │ │ │ ├─JPN │ │ │ └─RES │ │ └─WORDPAD │ │ └─RES │ └─UTILITY │ ├─BATCH │ └─GUIDEGEN │ └─RES ├─MIDAS │ ├─ACTIVEFM │ ├─ADHOC │ ├─BRIEFCASE │ ├─EMPEDIT │ ├─INTERNETEXPRESS │ │ ├─CUSTOMERLIST │ │ ├─INETXCUSTOM │ │ └─TROUBLESHOOT │ ├─MSTRDTL │ └─SETPARAM ├─OPENGL │ ├─DRAWING │ └─ROTATE ├─PWORDDEMO ├─SHELLCONTROLS │ └─SHELLCONTROLDEMO ├─STDLIB ├─TEECHART ├─TOOLSAPI │ ├─ACTIONSERVICES │ ├─FILTERS │ │ └─PREPROCESSOR │ ├─INTASERVICES │ ├─KEYBINDINGS │ └─PACKAGEDEMO ├─VIRTUALLISTVIEW ├─WEBSERV ├─WEBSERVICES │ ├─ECHOSERVICE │ │ ├─CLIENT │ │ └─SERVER │ ├─POSTSOAP │ └─SOAPDATAMODULE │ ├─CLIENT │ └─SERVER ├─WEBSNAP │ ├─BIOLIFE │ ├─COUNTRYEDITOR │ ├─COUNTRYREPORT │ ├─DUMPMODULES │ ├─IMAGES │ ├─INCLUDE │ ├─LOCATEFILESERVICE │ ├─MASTERDETAIL │ ├─PHOTOGALLERY │ └─STREAMIMAGE └─WINTOOLS
本书是一本指导读者如何最大程度地使用c++ builder 6.0进行代码开发的就业指南。书中详细介绍了关键的编程概念和利用vcl环境来开发应用程序的基础知识,还提供了上百个如何在vcl环境下使用c++ builder功能的技巧、具有实践性的建议以及数百个可以立即运行的重要解决方案的详细代码,内容主要涉及以下几个方面:标准c++基础知识、vcl库、windows窗体、图形编程、多线程技术、数据库应用、分布式应用、web等等。通过本书的学习,读者可以高效的利用c++ builder开发应用程序,能够理解关键操作的内部实现机制,有助于迅速利用c++ builder来实现大量的编程任务,成为一个成功的设计师。 本书适用于大中专院校学生、程序设计人员和c++ builder爱好作为为一本就业实践指南。 目录 ↑第一部分 学习——跨越求职路上的鸿沟 第1章 夯实c++基本功 1.1 初步认识c++基本功 1.2 类型和表达式 1.3 控制结构 1.4 指针和数组 1.5 函数 1.6 结构和枚举 第2章 如何实现面向对象编程 2.1 类和对象 2.2 友元类和友元函数 2.3 类的继承 2.4 多态和虚函数 第3章 异常处理3.1 3.2 win32平台的结构优异常处理 3.3 c++异常处理 第二部分 实践——享受c++builder,享受工作的乐趣 第4章 参观c++builder的开发环境 4.1 了解集成开发环境 4.2 项目管理工具 .4.3 编译和调试的方法 4.4 如何开发一个完整的工程 第5章 使用类库 5.1 vcl库中的类结构 5.2 组件的控件之间的关系 5.3 理解属性、方法和事件 5.4 通用的属性、方法和事件 5.5 与应用程序息息相关的类 第6章 设计用户界面 6.1 利用按钮与用户交互 6.2 静态文本显示类控件的操作 6.3 用户输入类控件的应用 6.4 状态类控件的应用 6.5 选项类控件的应用 6.6 分页控件 6.7 大纲视图类控件 6.8 如何在窗口上显示图形 6.9 tframe的使用 6.10 管理菜单 6.11 工具栏和酷栏 6.12 使用动作列表 第7章 图形编程 7.1 图形的简单显示 7.2 设备描述表与tcanvas类 7.3 gdi对象 7.4 基本绘图操作 第8章 文件和目录操作 8.1 标准文件类型 8.2 常用文件操作函数 8.3 文件操作对话框 8.4 如何获取驱动器类型 8.5 操作jni文件 8.6 获取文件的日期信息 8.7 检测软盘或光碟是否有过变化 8.8 检测驱动器容量 8.9 复制整个目录 8.10 将文件删除到回收站中 8.11 检测驱动器是否就绪 8.12 操作临时文件 第9章 打印的实现 9.1 用对话框设置打印 9.2 简便的打印 9.3 tprinter类 9.4 获取默认打印机信息 9.5 获取打印队列的信息 9.6 如何打印位图 第10章 注册表 10.1 注册表键 10.2 注册表数据类型 10.3 使用tregistry 第11章 多线程的处理 11.1 如何创建并运行一个线程 11.2 在vcl中使用线程 11.3 如何控制线程的优化级 11.4 如何挂起和唤醒线程 11.5 如何协调线程之间的工作 第三部分 价值提升_走上专家之路,做个真正的设计师 第12章 数据库技术 12.1 用ado连接数据库 12.2 如何连接到数据源 12.3 如何从数据源取出数据 12.4 如何对数据集中的数据进行操作 12.5 如何创建主线表 12.6 如何使用字段组件 12.7 数据集的状态 12.8 用adocommand直接对数据源进行操作 第13章 分布多层应用 13.1 为什么要使用分布式多层结构 13.2 理解midas 13.3 创建分布式应用程序 13.4 创建应用程序服务器 13.5 创建客户端应用程序 13.6 在分布式应用程序中管理事务 13.7 支持远程数据模块的状态信息 13.8 用提供者组件和客户端交互 第14章 利用webbroker开发web应用 14.1 什么是webbroker 14.2 html基础 14.3 使用webbroker组件作开发 14.4 使用cookie 第15章 scket编程 15.1 winsock概述 15.2 服务端socket 15.3 客户端socket 15.4 数据传输 15.5 winsocd类组件介绍 15.6 如何创建自己的网络聊天室

13,825

社区成员

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

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