//错误处理,显示原因
void __fastcall TSerialPort::ProcessErrorMessage(char* ErrorText)
{
char ErrorMsg[400];
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER //自动分配消息缓冲区
FORMAT_MESSAGE_FROM_SYSTEM, //从系统获取信息
NULL,GetLastError(), //获取错误信息标识
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),//使用系统缺省语言
(LPTSTR)&lpMsgBuf, //消息缓冲区
0,
NULL);
sprintf(ErrorMsg, ""%s" 由于以下错误而失败: %s",ErrorText,lpMsgBuf);
Application->MessageBox(ErrorMsg, "错误", MB_ICONSTOP);//弹出错误提示框
LocalFree(lpMsgBuf);
}