主要代码如下:
//**********找到设备路径后,创建该设备的文件句柄***********
HANDLE hDevice = CreateFile( ifDetail->DevicePath, //设备路径
GENERIC_READ | GENERIC_WRITE, //可读写
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);//*********读文件函数(读没有问题)*********
bool WINAPI ReadForHID(char* lpBuffer,UINT nNumberOfBytesToRead,
UINT &lpNumberOfBytesRead)
{ if (ReadFile( hidDevice, lpBuffer, nNumberOfBytesToRead, (LPDWORD)&lpNumberOfBytesRead, NULL))
return true;
else
return false;
}//******写文件函数*********
bool WINAPI WriteToHID(char* lpBuffer,UINT nNumberOfBytesToWrite,
UINT &lpNumberOfBytesWritten){
if (WriteFile(hidDevice,lpBuffer,nNumberOfBytesToWrite,(LPDWORD) &BytesLenBeWritten,NULL)) return true;
else
return false;
}//*******调用写函数**********
unsigned int nNumberOfBytes = 9;
unsigned int nWriteBytes = 9;
char* lpBuffer = new char[nNumberOfBytes];
lpBuffer = "123456789";
WriteToHID(lpBuffer,strlen(lpBuffer),nWriteBytes);//调用写函数
DWORD dwErr = GetLastError();//返回0x00057(参数错误),不知是怎么回事?
实在参数再简单不过了,怎么会出这种错误呢!!况且读并没有任何问题!!
会引发这种错误的一般有哪些原因?能解决的话,愿意另外开帖500分赠送!!
//**********找到设备路径后,创建该设备的文件句柄***********
HANDLE hDevice = CreateFile( ifDetail->DevicePath, //设备路径
GENERIC_READ | GENERIC_WRITE, //可读写
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);//*********读文件函数(读没有问题)*********
bool WINAPI ReadForHID(char* lpBuffer,UINT nNumberOfBytesToRead,
UINT &lpNumberOfBytesRead)
{ if (ReadFile( hidDevice, lpBuffer, nNumberOfBytesToRead, (LPDWORD)&lpNumberOfBytesRead, NULL))
return true;
else
return false;
}//******写文件函数*********
bool WINAPI WriteToHID(char* lpBuffer,UINT nNumberOfBytesToWrite,
UINT &lpNumberOfBytesWritten){
if (WriteFile(hidDevice,lpBuffer,nNumberOfBytesToWrite,(LPDWORD) &BytesLenBeWritten,NULL)) return true;
else
return false;
}//*******调用写函数**********
unsigned int nNumberOfBytes = 9;
unsigned int nWriteBytes = 9;
char* lpBuffer = new char[nNumberOfBytes];
lpBuffer = "123456789";
WriteToHID(lpBuffer,strlen(lpBuffer),nWriteBytes);//调用写函数
DWORD dwErr = GetLastError();//返回0x00057(参数错误),不知是怎么回事?
实在参数再简单不过了,怎么会出这种错误呢!!况且读并没有任何问题!!
会引发这种错误的一般有哪些原因?能解决的话,愿意另外开帖500分赠送!!
strcpy(lpBuffer,"123456789");
WriteToHID(lpBuffer,strlen(lpBuffer),nWriteBytes);//调用写函数
我用过memcpy,strcpy都不行,还是同样的错误!