Вот сталкнулся с проблемой выделения памяти в нужном для меня месте. юзаю код: Code: 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
Попробуй так Code: 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 занят.