DWORD dError;
ULONG nWritten;
// BOOL ret = FALSE;
BOOL ret;
hDevice = OpenByInterface( &ClassGuid, 0, &dError);
if(hDevice ==INVALID_HANDLE_VALUE)
{
AfxMessageBox("USB É豸²»¿ÉÒÔд");
ret = WriteFile(hDevice,buf,wLength,&nWritten,NULL);
CloseHandle(hDevice);
return nWritten;在另台电脑上没有问题
但是这台电脑会重启 系统是 雨林木风 Windows XP SP3 安装版 Y5.6
请问是这个问题吗
ULONG nWritten;
// BOOL ret = FALSE;
BOOL ret;
hDevice = OpenByInterface( &ClassGuid, 0, &dError);
if(hDevice ==INVALID_HANDLE_VALUE)
{
AfxMessageBox("USB É豸²»¿ÉÒÔд");
ret = WriteFile(hDevice,buf,wLength,&nWritten,NULL);
CloseHandle(hDevice);
return nWritten;在另台电脑上没有问题
但是这台电脑会重启 系统是 雨林木风 Windows XP SP3 安装版 Y5.6
请问是这个问题吗
//如果返回的句柄无效,你干嘛还写啊?有效才写啊
{
AfxMessageBox("USB É豸²»¿ÉÒÔд");
ret = WriteFile(hDevice,buf,wLength,&nWritten,NULL);
CloseHandle(hDevice);
return nWritten;
我写了它也不执行呀
我调试的时候它走到了WriteFile就重启了。
DWORD MW90ADevice::ReadBulkData (char *buf,long wLength)
{
DWORD dError = 0;
//BOOL rc;
ULONG nRead;
hDevice = OpenByInterface(&ClassGuid, 0, &dError); if(hDevice !=INVALID_HANDLE_VALUE)
{
AfxMessageBox("USB É豸¿ÉÒÔ¶Á");
}
ret = WriteFile(hDevice,buf,wLength,&nWritten,NULL); CloseHandle(hDevice);
return nWritten;
DWORD MW90ADevice::ReadBulkData (char *buf,long wLength)
{
DWORD dError = 0;
//BOOL rc;
ULONG nRead;
hDevice = OpenByInterface(&ClassGuid, 0, &dError); if(hDevice !=INVALID_HANDLE_VALUE) //这里判断句柄何意?判断了之后如果是无效的,你不还是接着往里写吗?
{
AfxMessageBox("USB É豸¿ÉÒÔ¶Á");
}
ret = WriteFile(hDevice,buf,wLength,&nWritten,NULL); //如果hDevice非法,你仍然是往里写CloseHandle(hDevice);
return nWritten;