Привет всем. Вопрос выделение динамической памяти в windows возможно только через winapi функции или есть еще какието способы? И еще вопросик в языках высокого уровня есть понятие динамическое связывание, а как оно реализуется в ассемблере?
Ответ(?) на первый вопрос: Поскольку память общесистемный ресурс, то получить его в свое пользование можно только через вызовы операционной системы, причём не важно как именно, через стандартную библиотеку или через Win API.
HumanAPI Можно выделить блок большего размера чем нужно (средствами API), и записать туда несколько элементов данных. Через структуры и указатели (обычно в структурах).
Код (Text): struct asd prev dd ?-указатель на предыдущую структуру next dd ?-на следующую ....-сама структура .... ends
FreeManCPM Извени я имел в виду не списки. Динамическое связывание это кагда вызываемая подпрограмма определяется во время выполнения программы(вроде наследования в классах).
Использует. В любом случае любая аллокация в винде в юзермоде опирается на kernel32!VirtualAlloc (ntdll!ZwAllocateVirtualMemory)
Использует, именно потому: "память общесистемный ресурс - получить его в свое пользование можно только через вызовы операционной системы, причём не важно как именно, через стандартную библиотеку(msvcrt.dll) или через Win API." :_) Ты так и не сказал в чём проблема. Сформулируй.
Код (Text): proc summ par1,par2 .... proc multpl par1,par2 .... proc divide par1,par2 .... .... cmp al, '+' jnz @f mov [proced],summ @@: cmp al, '*' jnz @f mov [proced],multpl @@: cmp al, '/' jnz @f mov [proced],divide @@: invoke proced chislo1,shislo2 можно указатели на процедуры держать в массивах, и вызывать по индексу, полученному в результате определенных операций
nester7 Просто с Win API не могу разобраться, а хочется всякие VirtualAlloc, GlobalAlloc, HeapAlloc, а еще функции Lock кого когда и в какой последовательности надо юзать непонятно.
HumanAPI Рихтер однозначно рулёз Но еще загляни сюда и заюзай поиск по сайту постов от leo с ключевым словом VirtualAlloc