Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
2-1152528612
Як
2006-07-10 14:50
2006.07.30
Использование "не-com" интерфейсов


3-1148656387
SergeyGalat
2006-05-26 19:13
2006.07.30
Ошибка Table is Busy


15-1151919441
Layner
2006-07-03 13:37
2006.07.30
Скрипт на VBS, читающий название файлов в дирректории...


1-1150388056
***(H@kker)***
2006-06-15 20:14
2006.07.30
Изменение ресурса файла


15-1151417957
ArtemESC
2006-06-27 18:19
2006.07.30
Как узнать где SoundBlaster: порт, DMA-канал ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский