我用API中的ReadFile函数读取串口收到的字符,但怎样才能获得已收到字符的个数呢?这个设大了读取出错,设小了数据读取又不完整,怎么办啊?记得好像是有这么个函数,但对API不是很熟悉!还请大家帮帮忙!
解决方案 »
- 应用程序如何在退出时释放多个DLL的内存?在线等待!
- 请问delphi2006支持unicode吗,如果支持,该在哪儿设置!
- 我找到了好东东---‘自动五笔拼音转换模块’,快进来看!!!!!
- 服务器换窗体时ServerSovket/ClientSocket能否自动重新连接。在线等待!!
- Delphi连接数据库奇怪的问题
- 有人读过VCL源代码吗?
- 做Delphi的同志们,能不能提供一些漂亮有用的空间给我(VC)用?万分感谢
- 怎么做加密,解密啊
- 用delphi的database desktop创建数据库时,怎样才能输入Memo与Graphic字段的内容?
- 小东西照样有50分。怎样取extended的整数部分?转换成integer?这是怎么啦, 系统老是将我的问题转换成别人的问题
- 如何终止启动某一个win2000的服务,谢谢!
- 要实现钟对某次操作的恢复怎么实现?
nErrMask : DWORD;
CommStat: ComStat;
begin
if ClearCommError( hCommFile, nErrMask, @CommStat ) then
begin
if CommStat.cbInQue <= 0 then; { cbInQue 就是你当前缓存区的数据字节数量 }
end;
var
DUFF: array[0..50] of CHAR; //存放读出的数据放在缓冲区该缓冲区中
xx: cardinal; //实际读取的字节数
BCC: BOOLEAN;
ss_xx, ss_yy: string;
LAPPED: pOVERLAPPED;
begin
bcc := readfile(pub_handle, duff, 50, XX, nil);
if not bcc then
begin
result := 0;
read_str := '';
end else //not bcc
begin
if xx > 0 then
begin
ss_yy := duff;
ss_xx := copy(ss_yy, 1, xx);
read_str := pchar(ss_xx);
result := xx;
duff := '';
end else //xx>0 表示有数据读出
begin
read_str := '';
result := 0;
duff := '';
end;
end; //not bcc
end;