BOOL SetDeviceID(HANDLE device,char *id){//
char data[2];
data[0]=0x02;
data[1]=0x27;
DWORD dwPtr=SetFilePointer(device,0x33,//distance
NULL,//
FILE_BEGIN);
if(dwPtr==INVALID_SET_FILE_POINTER) cout<<GetLastError()<<endl;
BOOL result=WriteFile(device,data,2,NULL,NULL);
//cout<<GetLastError()<<endl;
if(result==false)cout<<"Fail WRITE "<<endl;
return TRUE;
}
HANDLE GetDeviceHandle(char *path){
HANDLE handle= CreateFile(LPCSTR(path),
GENERIC_ALL,//
0,
NULL,
OPEN_EXISTING,
NULL,
NULL);
if(handle==INVALID_HANDLE_VALUE){
cout<<"fail to createfile()"<<endl;
exit(1);
}
else return handle;
}
这是我作品的一些代码。为什么它失败SetFilePointer()?
我要读/写,直接设备(USB)
上的ReadFile()的情况下,它是成功的。
不过,我曾试图打电话给SetFilePointer
但是GetLastError函数返回87.这意味着无效的输入
问题是什么?在我的代码
不久的CreateFile,ReadFile的是确定,但SetFilePointer和WriteFile失败
什么是'设备',你从哪里得到它?你的代码看起来没有足够的相关性和干净。 –
设备来自main() 请假设HANDLE参数有效。 我已经用ReadFile() – user1829967
检查过这个值设备是一个驱动器? –