線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3325
推到 Plurk!
推到 Facebook!

關於ReadFile無法讀出HID裝置問題

答題得分者是:syntax
wensueshian
一般會員


發表:2
回覆:3
積分:1
註冊:2003-11-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-22 09:44:45 IP:61.229.xxx.xxx 訂閱
請問各位前輩

小弟目前利用WriteFile函式寫入一個HID裝置(共64byte), 然後利用ReadFile讀回寫入值時卻回傳錯誤碼87, 可否幫忙解答? 感謝

程式碼如下

//===================================================================================//
char InputReport[65];
DWORD NumberOfBytesRead;

Result = ReadFile(ReadHandle,
InputReport,
Capabilities.InputReportByteLength, // Capabilities.InputReportByteLength = 65(十進制);
&NumberOfBytesRead,
NULL);

int Result1 = GetLastError();

//===================================================================================//

最後發現 Result1 = 87 ; 傳入參數錯誤~~
請問各位前輩是我ReadFile的哪些參數設錯了嗎??
編輯記錄
wensueshian 重新編輯於 2007-05-22 10:21:47, 註解 無‧
wensueshian 重新編輯於 2007-05-22 10:24:49, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-22 09:56:26 IP:61.64.xxx.xxx 訂閱
BOOL ReadFile(
  HANDLE lpBuffer,  <-----------這個是指標,你傳的是數值
  DWORD lpNumberOfBytesRead,
  LPOVERLAPPED lpOverlapped
);


 
wensueshian
一般會員


發表:2
回覆:3
積分:1
註冊:2003-11-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-22 10:05:59 IP:61.229.xxx.xxx 訂閱
所以我的程式應該改成如下這樣嗎?

char InputReport[65];
DWORD NumberOfBytesRead;

Result = ReadFile(ReadHandle,
&InputReport,
Capabilities.InputReportByteLength, // Capabilities.InputReportByteLength = 65(十進制);
&NumberOfBytesRead,
NULL);

int Result1 = GetLastError();

編輯記錄
wensueshian 重新編輯於 2007-05-22 10:13:45, 註解 無‧
wensueshian 重新編輯於 2007-05-22 10:14:01, 註解 無‧
wensueshian 重新編輯於 2007-05-22 10:18:30, 註解 無‧
wensueshian
一般會員


發表:2
回覆:3
積分:1
註冊:2003-11-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-22 10:14:34 IP:61.229.xxx.xxx 訂閱
還是請問大大 我該怎麼修改呢?
wensueshian
一般會員


發表:2
回覆:3
積分:1
註冊:2003-11-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-22 11:28:04 IP:61.229.xxx.xxx 訂閱
可是小弟用WriteFile函式按照上面ReadFile寫入就成功 , 程式碼如下

//===============================================================//
DWORD BytesWritten;
ULONG Result;
char OutputReport[64] ;
unsigned int i;

OutputReport[0]=1;
for (i = 1; i < 64; i)
OutputReport[i] = 'X';


Result = WriteFile(DeviceHandle,
OutputReport,
Capabilities.OutputReportByteLength, // 65
&BytesWritten,
NULL);

//===============================================================//


Result =1 , 利用BUS Hound觀察有成功寫入USB裡!!

系統時間:2024-04-26 6:26:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!