Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемы с GetProcessHeap/HeapCreate

7
13 июня 2007 года
@pixo $oft
3.4K / / 20.09.2006
Почему я никак не могу получить указатель на кучу?Ни на новую,ни на кучу процесса!Под отладчиком всё работает-я получаю указатель,но когда прога выполняется вживую,функции возвращают 0!!!И так во всех прогах!В чём дело?
Код:
.386
.Model Flat,StdCall
Include ..\Include\Kernel32.inc
IncludeLib ..\Lib\Kernel32
.Code
 hFile DD ?
 hHeap DD ?
 dwBytes DD ?
 lpBuf DD ?
 DLLMain:XOr EAX,EAX
 Inc EAX
 Ret 12
 GetDescription Proc C Export
  ;Открытие файла
  Invoke CreateFile,[ESP+28],2147483648,0,0,3,134217728,0
  Test EAX,EAX
  JS NoFile
  ;Получение его длины
  Mov hFile,EAX
  Invoke GetFileSize,EAX,0
  Test EAX,EAX
  JZ ZeroLen
  ;Получение дескриптора кучи
  Mov dwBytes,EAX
  Call GetProcessHeap
  Test EAX,EAX
  JZ NoMemC
  ;Выделение памяти
  Mov hHeap,EAX
  Inc dwBytes
  Invoke HeapAlloc,hHeap,8,dwBytes
  JZ NoMemA
  Mov lpBuf,EAX
  Invoke ReadFile,hFile,lpBuf,dwBytes,Offset dwBytes,0
  JZ NoData
  Invoke CloseHandle,hFile
  Mov EAX,lpBuf
  Ret 4
  NoData:Invoke HeapFree,hHeap,0,lpBuf
  Mov EAX,4
  Ret 4
  NoMemA:Invoke HeapDestroy,hHeap
  Invoke CloseHandle,hFile
  Mov EAX,3
  NoMemC:Invoke CloseHandle,hFile
  XOr EAX,EAX
  Inc EAX
  Inc EAX
  Ret 4
  ZeroLen:XOr EAX,EAX
  Inc EAX
  Ret 4
  NoFile:XOr EAX,EAX
  Ret 4
 GetDescription EndP
End DLLMain
;Коды ошибок:0-файл не открыт,1-файл пуст,2-ошибка создания кучи,3-ошибка выделения памяти,4-ошибка чтения

Функция читает данные из файла и возвращает указатель на них(динамически выделенная память) или код ошибки
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог