一个类似于读卡机的程序,如何能实现打开一个com口,并读入数据的功能?
解决方案 »
- 求大神指点一下,关于单文档程序下按钮的
- 如何禁止系统休眠和屏保?
- com+客户程序
- KL变换的英文全称是什么?
- 不使用windows的线程池函数,用纯C实现一个线程池。请高手大侠们帮忙。
- ?CRecordset中的什么方法能执行"desc xxx"语句,如果没有,有其他办法么?谢高人
- 请问DAO中,如何防止新建时出现重复的主键,百分相赠
- 如何判断字符串中的字符是汉字(或全角字符)?
- 求教一个打包问题,急啊,请各位教教我!
- 到底stdafx.*有什么用,好象没有了是不行哦~~~~~~
- 数组里的上千个double型的数据怎样正确保存为*.txt文件并读出到数组里?
- 强烈要求增开winsock编程版,大家帮忙顶!!!!!!!!!!!!!!!
ReadFile();或DeviceIoControl()读数据
是一个很好的教程
if((hComDev = (HWND )CreateFile(COMADDR, GENERIC_READ|GENERIC_WRITE,0,
NULL, OPEN_EXISTING, 0, NULL))==INVALID_HANDLE_VALUE)
{
str.Format("Error opening COM%d port!", G_CardPort);
AfxMessageBox(str);
return ;
}接下来该如何读入数据?
MOV DX ,0
INT 14H
你说的那个网站里没有告诉我如何读数据啊??
DWORD CMytry1Dlg::ReadComm(char *buf, DWORD dwLength)
{
DWORD length=0;
COMSTAT ComStat;
DWORD dwErrorFlags; ClearCommError(m_hCom,&dwErrorFlags,&ComStat);
ReadFile(m_hCom,buf,length,&length,&m_osRead);//读
//m_hCom是你用CreateFile返回的句柄
return length;
}
再用ReadFile 和WriteFile读写;
while (MyApp->G_bReading)
{
if (WaitCommEvent(MyApp->G_hComDev[iCurrent], &dwEvent, NULL))
{
ClearCommError(MyApp->G_hComDev[iCurrent], &dwError, &cs);
…………
…………
}
}
发现总进不了if的语句里,请教原因。
是否我WaitCommEvent用得不对?