Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

WriteFile to Hid(USB)   Найти похожие ветки 

 
que ©   (2006-04-11 19:06) [0]

Нужен глаз специалиста.
У меня почемуто функция WriteFile бездействует.
Подскажите почему.
У меня такое ощущение что я напутал указателями, т.е не корректно спроектировал буфер обмена.
В хелпе похожих примеров не нашел.

Var adrmas:Pbytearray; OutputReport : Array [0..255] of Byte; k:byte;

{receive HidHandle of output report}

adrmas := (@OutputReport[0]) ;
GetMem(adrmas, Capabilities.OutputReportByteLength) ;
for k:=0 to 12 do begin
if (StringGrid1.Cells[k+1,0]<>"") then
begin
OutputReport[k] := strtoint(StringGrid1.Cells[k+1,0]) ;
end else begin
 label10.Caption:="cells is clear";
end;
end;
WriteFile(HidHandle, adrmas^ , Capabilities.OutputReportByteLength , Byteswrite, nil);
if WriteFile(HidHandle, adrmas^ Capabilities.OutputReportByteLength, Byteswrite, nil)
 then label10.Caption:="success!"
 else
 label10.caption:="fail";
FreeMem(adrmas);
HidD_FreePreparsedData(PreparsedData);
 CloseHandle(HidHandle);
End;


 
n0name   (2006-04-11 20:12) [1]


> GetMem(adrmas, Capabilities.OutputReportByteLength) ;

Зря.


 
que ©   (2006-04-11 22:12) [2]

А как же тогда allocated memory?


 
n0name   (2006-04-12 03:08) [3]


> А как же тогда allocated memory?

А зачем?
У тебя же adrmas указывает на массив.


 
que ©   (2006-04-12 06:58) [4]

Т.е, текст похож на правду, тока можно без памяти?


 
n0name   (2006-04-12 12:03) [5]

Когда ты пишешь GetMem(addr, size), то выделяется кусок памяти размера size, а в addr заносится указатель на этот кусок.
В коде ты нигде adrmas не используешь, зачит в файл ты ничего не записываешь.


 
que ©   (2006-04-12 17:39) [6]

Попробовал также без массива, на основе вышеизложенного примера, к сожалению ситуация таже.
var adrmas,dopvar:Pbyte;

adrmas := allocmem(Capabilities.OutputReportByteLength);
dopvar := adrmas ;

for k:=0 to 12 do begin
 dopvar^:= k;
inc(dopvar) ;
end;
WriteFile(HidHandle, adrmas^ , Capabilities.OutputReportByteLength , Byteswrite, nil);

В итоге Byteswrite 0, т.е ничего не передано.
Чета застрял..



Страницы: 1 вся ветка

Текущий архив: 2006.07.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.064 c
1-1150257710
xex32
2006-06-14 08:01
2006.07.30
Как принять штрих код со сканера Eclipse в компонент TEdit


2-1152600506
mbIkola
2006-07-11 10:48
2006.07.30
TIdTCPClient и LoadLibrary КОСЯК !!!


1-1150728345
DJuce
2006-06-19 18:45
2006.07.30
Проверить путь к файлу - сетевой или локальный?


1-1150550494
lux_dn
2006-06-17 17:21
2006.07.30
Утечка ПАМЯТИ &amp; DLL


2-1152454547
Зм1й
2006-07-09 18:15
2006.07.30
Canvas