Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Глюки с VirtualAlloc (https://forum.antichat.xyz/showthread.php?t=41619)

slesh 05.06.2007 12:50

Глюки с VirtualAlloc
 
Вот сталкнулся с проблемой выделения памяти в нужном для меня месте.
юзаю код:
Код:

windows.VirtualAlloc(pointer($00400000),$6000,MEM_COMMIT, PAGE_EXECUTE_READWRITE        );
showmessage(sysutils.SysErrorMessage(GetlastError));

При запуске выдает ошибку: The parameter is incorrect
В опциях проекта указал IMAGE BASE = $00600000
И вообще через дибагер запускаю - этот участок памяти абсолютно свободен! т.е. никем не выделен!
Думал баг из-за дельвы. Но попробывал написать на ASM - тотже результат.
Также заметил что при параметрах MEM_COMMIT+MEM_RESERVE вылетает ошибка: Attempt to access invalid address

Xserg 05.06.2007 16:13

Попробуй так
Код:

var  MBI: MEMORY_BASIC_INFORMATION;
VirtualQuery(pointer($400000),MBI,$1000);
if (MBI.State and MEM_FREE) =        MEM_FREE then
if (MBI.RegionSize -(dword(MBI.AllocationBase)-$400000)) >= $6000  then
  VirtualAlloc(pointer($00400000),$6000,MEM_COMMIT, PAGE_EXECUTE_READWRITE)
  else xyz;

у меня при любом IMAGE BASE регион $00400000 занят.

slesh 06.06.2007 18:48

Пробывал. Нифега не хочет. Странная какаято винда


Время: 16:41