MEMORY_ALL_FIND STRUCT
buffer db 400h dup(?)
.....
MEMORY_ALL_FIND ENDS
Вопрос по синтаксису
Код:
Хочется написать так:
Код:
assume edi:ptr MEMORY_ALL_FIND
invoke GetModuleHandle,0h
invoke GetModuleFileName,eax,[edi].buffer,400h
.....
assume edi:nothing
invoke GetModuleHandle,0h
invoke GetModuleFileName,eax,[edi].buffer,400h
.....
assume edi:nothing
Но так получается ошибка!
По идее почему? Ведь в edi содержится адрес памяти, которая была выделена как VirtualAlloc.
Я хочу просто выделить сразу большой фрагмент виртуальной памяти, а потом с помощью структуры его как бы разметить, а потом эти ссылки использовать в функциях!
Не хочется городить вот так:
Код:
assume edi:ptr MEMORY_ALL_FIND
invoke GetModuleHandle,0h
lea edx,[edi].buffer
invoke GetModuleFileName,eax,edx,400h
.....
assume edi:nothing
invoke GetModuleHandle,0h
lea edx,[edi].buffer
invoke GetModuleFileName,eax,edx,400h
.....
assume edi:nothing
Что делать???
[edi].buffer вполне может значить его смещение в FASM, но не в других ассмеблерах. Используй offset.
В Masm addr можно использовать или dword, чтобы уточнить что именно надо. Что-то я об этом не подумал...