![]() |
Функция ReadFile
Здраствуйте!
Проблема заключается в том,что указанная функция походу возвращает False,и я не могу разобраться,почему так происходит. Итак имеется следующая ситуация: Код:
var Собственно,господа,какие будут соображения замечания по данному поводу ? |
А мона кода побольше? Вот эти самые CreateFile() (без А), VirtualAlloc()... Кстати, что возвращает GetLastError() после ReadFile()? hEXE на всякий сделай типа HANDLE.
|
Savant
Цитата:
Код:
CreateFile(OpenDlgBox.lpstrFile, GENERIC_READ, 0, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); Код:
VirtualAlloc(NIL, MemSize, MEM_COMMIT, PAGE_READWRITE); Код:
asm Код:
if ReadFile(тра-ля-ля) = False then Цитата:
|
DillerInc
Цитата:
Есть 2 функции CreateFile - это CreateFileA и CreateFileW разница между ними что А работает с анси кодировкой а W с уникодом, когда ты просто пишешь CreateFile компилятор сам определит с чем ты работаешь, вот кусок определеня критфайл из winbase.h Код:
WINBASEAPI HANDLE WINAPI CreateFileA(IN LPCSTR lpFileName, |
DillerInc
а файл вообще открылся??? |
lehha
Цитата:
Цитата:
Мне кажется,что косяк кроется в работе функции VirtualAlloc,которая,если я правильно понял,должна инициализировать резервируемое пространство нулями.В моём случае,значение возвращаемое ею выглядит в отладчике как: EAX=01490000 ...если же посмотреть,что находится по этому смещению,то наблюдаешь одни знаки вопроса вместо нулей...разве так должно быть ? Сейчас отлаживал в режиме ручной трассировки - наблюдал следующее: Код:
;Значит зайдя внутрь функции ReadFile Как же быть тогда с этой VirtualAlloc - ведь получается,из-за неё тогда выходит такой бедлам ? |
DillerInc
Хех, как все просто...... =) А сначала вообще в ступор я впал =) Даже весь код написать пришлось. Код:
program rf; |
Savant
Цитата:
Ну,это называется - что я буду без тебя делать в своих инфотехнологических поползновениях :grin: . Кстати,вот всё-таки хотелось бы подробнее узнать,чего мы добиваемся с помощью описанной ассемблерной вставки,в чём её суть ? |
DillerInc
>>Кстати,вот всё-таки хотелось бы подробнее узнать,чего мы добиваемся с помощью описанной ассемблерной вставки,в чём её суть ? Ну если я правильно понимаю, то: Код:
asm |
Время: 10:01. |
Время: 10:01.
© OSzone.net 2001-