试试将dwBytesWritten定义成cardinal,
file_attribute_normal or file_flag_overlapped-> 0还有,写入COM口时,不用这么一个字节一个字节的来的
给段例子Function Send232Data(const SendStr:array of char;const SendLen:integer):integer;
var
iSendNums: Cardinal;
begin
//gComID是COM的HANDLE
PurgeComm(gComID, PURGE_TXCLEAR or PURGE_RXCLEAR); if not WriteFile(gComId,SendStr,SendLen,iSendNums,nil) then begin
Result := -1;
exit;
end;
if (int(iSendNums) <> SendLen) then begin
Result := -2;
exit;
end;
Result := iSendNums;
end;
file_attribute_normal or file_flag_overlapped-> 0还有,写入COM口时,不用这么一个字节一个字节的来的
给段例子Function Send232Data(const SendStr:array of char;const SendLen:integer):integer;
var
iSendNums: Cardinal;
begin
//gComID是COM的HANDLE
PurgeComm(gComID, PURGE_TXCLEAR or PURGE_RXCLEAR); if not WriteFile(gComId,SendStr,SendLen,iSendNums,nil) then begin
Result := -1;
exit;
end;
if (int(iSendNums) <> SendLen) then begin
Result := -2;
exit;
end;
Result := iSendNums;
end;
解决方案 »
- 这样的程序结构如何使用事务??
- SetFileAttributes这个函数是做什么用的?
- Delphi的COM技术,比较难,各位大哥,有没有例子程序的源代码,小弟谢过
- 有什么命令可以清除dbgrid里的数据,让dbgrid 回到初始状态
- 使用ADOQUERY检索数据时,发生存储器不足提示,我的CODE真的那么占内存吗?
- 关于delphi中光驱操作的问题,请帮忙解决!!!
- 怎样显示一个带双横线,有关闭和最小化按钮的窗口区域?
- windows 鼠标右键弹出菜单,在哪儿修改?
- 在打印或打印预览前如何获取报表页数
- 一个关于窗体的难题,50分
- 如何使自己的delhi水平越来越厉害呢?
- 我在98下的delphi打包程序,到2000下不能运行(100分送上)
generic_write,0,nil,open_existing,
file_attribute_normal or
file_flag_overlapped,0);
2: HandleID :=CreateFile('COM2', GENERIC_READ or GENERIC_WRITE,
0, Nil,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
0);
改成
1: HandleID :=createfile('COM1',generic_read or
generic_write,0,nil,open_existing,
file_attribute_normal ,0);
2: HandleID :=CreateFile('COM2', GENERIC_READ or GENERIC_WRITE,
0, Nil,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL 0);即可