我想将串口重写的writeFile函数包含在函数中并多次调用该函数。我写了以下代码。但是函数返回false。我找不到任何错误。
bool WriteBuffer (char *lpBuf,DWORD dwToWrite){
// DWORD dwBytesWritten;
// DWORD dwToWrite;
printf("%s", lpBuf);
if(!WriteFile(hSerial, lpBuf, sizeof(lpBuf) ,&dwBytesWritten, NULL))
{
FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPWSTR)&lastError,
1024,
NULL);
CloseHandle(hSerial);
hSerial=NULL;
printf("ERROR in WRITE FILE \n");
return false;
//Handle Error Condition
}
printf("You wrote'%s'",lpBuf);
return true;
}
答案 0 :(得分:1)
您正在将sizeof(lpBuf)
传递给nNumberOfBytesToWrite
参数。但sizeof(lpBuf)
只是指针的大小。你应该通过dwToWrite
我认为。
如果这不能解决您的问题,则hSerial
中的其他错误原因无效。
如果您告诉我们这些功能返回了什么,那么在调用GetLastError
和FormatMessage
时会遇到麻烦。