使用WriteFile GetLastError的返回值是5,怎么提升权限

 我来答
桃子的幸福on
推荐于2016-06-04 · 知道合伙人互联网行家
桃子的幸福on
知道合伙人互联网行家
采纳数:1044 获赞数:2229
在校计算机专业学生

向TA提问 私信TA
展开全部
  ComHandle=CreateFile(Port,

GENERIC_READ||GENERIC_WRITE,

0,NULL,OPEN_EXISTING,NULL,NULL);

if(ComHandle==INVALID_HANDLE_VALUE){MessageBox("1"); return 0;}

char tmpP[11]="9600,n,8,1";//设置通讯参数

DCB dcb;

if(GetCommState(ComHandle,&dcb)==0){MessageBox("2");return -1;}

if(BuildCommDCB(tmpP,&dcb)==0){MessageBox("3");return -1;}

if(SetCommState(ComHandle,&dcb)==0){MessageBox("4");return -1;}

COMMTIMEOUTS TimeOuts;//设置超时时间

GetCommTimeouts(ComHandle,&TimeOuts);

TimeOuts.ReadIntervalTimeout=2000;

TimeOuts.ReadTotalTimeoutConstant=400;

TimeOuts.ReadTotalTimeoutMultiplier=400;

TimeOuts.WriteTotalTimeoutMultiplier=40;

TimeOuts.WriteTotalTimeoutConstant=400;

if(SetCommTimeouts(ComHandle,&TimeOuts)==0){MessageBox("6");return -2;}
if(SetupComm(ComHandle,2048,1024)==0){MessageBox("7");return -3;}//设置缓冲区

//PurgeComm(ComHandle,PURGE_RXABORT||PURGE_RXCLEAR);

//PurgeComm(ComHandle,PURGE_TXABORT||PURGE_TXCLEAR);

if(ComHandle<0){MessageBox("111");return 111;}

BYTE m_SendBuffer[1];

DWORD m_Number;

m_SendBuffer[0]=0x06;

if(WriteFile(ComHandle, m_SendBuffer, 1 , &m_Number,NULL)==0)

{

DWORD ErrorCode;

ErrorCode=GetLastError();

char temp[5];

sprintf(temp,"%d",ErrorCode);

MessageBox(temp);

MessageBox("here!");

return -5;

}

CloseHandle(ComHandle);

// Write();

MessageBox(Port);

return 0;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式