Re[8]: Разделяемая память Windows
От: Wavy  
Дата: 03.08.04 03:01
Оценка:
Здравствуйте, King of a Stellar War, Вы писали:

KOA>Я так понял, что адрес переданый в VirtualAlloc и полученный после его вызова, будут совпадать, если по этому адресу возможно разместить кусок памяти указанного размера? Иначе, система найдёт другую область?


Именно так.
Но кусок памяти линейный, работать с ним не очень удобно. Потому я и вспоминал про менеджер кучи.

KOA>>>4. Как мне освобождать память выделенную в другом процессе?

W>>С этим проблема. Чтобы освободить блок, выделенный другим процессом, нужно точно знать что он больше не используется и не будет использоваться тем процессом. Для этого можно ставить маркеры в блоках, но в любом случае, насколько мне известно, — без собственного менеджера памяти (кучи) тогда не обойтись.
W>>А освобождается память, насколько я понмню — VirtualFree.

KOA>А вот тут самое интересное, у меня по VirtualFree даже в родном процессе память не освобождается (ХР), перепробовал разные варианты, но память устойчиво освобождается только после вызова CloseHandle(hFileMapping)


Память выделяется\освобождается постранично. Если вызвать VirtualFree для целой страницы — разве тоже не освобождается?
< Rsdn@Home 1.1.4 beta 1 >
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.