请问函数createfile(打开串口)的返回值是什么类型的?

jxfzy 2004-01-09 01:37:39
在DELPHI中用什么类型啊
...全文
442 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stephenland74 2004-01-12
  • 打赏
  • 举报
回复
是一个句柄,今后所有对该串口操作的函数均会引用该句柄的,HANDLE就是铁锅把手,铁锅就是容器,用来炒菜,没有把手怎么能行呢?
cooling 2004-01-11
  • 打赏
  • 举报
回复
跟踪下去是一个 LongWord 类型的
Sumie@Sam 2004-01-11
  • 打赏
  • 举报
回复
句柄THandle
dqycxf 2004-01-11
  • 打赏
  • 举报
回复
Long,如执行成功,则返回文件句柄。INVALID_HANDLE_VALUE表示出错,会设置GetLastError。
jpyc 2004-01-09
  • 打赏
  • 举报
回复
Thandle是个句柄
cooling 2004-01-09
  • 打赏
  • 举报
回复
function CloseCom(ComHdl: THandle): Boolean;
//关闭串口
begin
Result := CloseHandle(ComHdl);
end;
cooling 2004-01-09
  • 打赏
  • 举报
回复
function OpenCom(pComPort : Byte; iBaundRate : Integer): THandle;
// 打开串口
// pComPort: 串口名称或设备路径,可用"COM1"或"\\.\COM1"两种方式,建议用后者
// iBaundRate: 波特率
var
ComHdl: THandle;
Dcb: TDCB;
TimeOut: ComMtimeOuts; //100, 1, 500, 1, 100
pTpPort: PChar;
begin
pTpPort := PChar('com' + IntToStr(pComPort));
TimeOut.ReadIntervalTimeout := 100; //读字符间隔超时时间: 100 ms
TimeOut.ReadTotalTimeoutMultiplier := 1; //读操作时每字符的时间: 1 ms (n个字符总共为n ms)
TimeOut.ReadTotalTimeoutConstant := 500; //基本的(额外的)读超时时间: 500 ms
TimeOut.WriteTotalTimeoutMultiplier := 1; //写操作时每字符的时间: 1 ms (n个字符总共为n ms)
TimeOut.WriteTotalTimeoutConstant := 100; //基本的(额外的)写超时时间: 100 ms
ComHdl := Createfile(
pTpPort, //串口名称或设备路径
Generic_Read or Generic_Write, //读写方式
0, //共享方式:独占
nil, //认的安全描述符
open_existing, //创建方式
0, //不需设置文件属性
0 //不需参照模板文件
);
if (ComHdl = Invalid_Handle_Value) then
begin
Result := ComHdl; //打开串口失败
Exit;
end;
GetCommState(ComHdl, Dcb); //取DCB
Dcb.BaudRate := iBaundRate;
Dcb.ByteSize := 8;
Dcb.Parity := EvenParity;
Dcb.StopBits := 1;
SetCommState(ComHdl, Dcb); //设置DCB
SetUpComm(ComHdl, 4096, 1024); //设置输入输出缓冲
SetCommTimeOuts(ComHdl, TimeOut); //设置超时
Result := ComHdl;
end;
cooling 2004-01-09
  • 打赏
  • 举报
回复
Thandle

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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