У меня есть 2 вопроса по поводу использования общей памяти. Я использую CreateFileMapping для создания общей области памяти между двумя процессами.
1) Я понимаю, что мне нужно вызывать CloseHandle для каждого дескриптора, возвращенного из вызова CreateFileMapping или OpenFileMapping, чтобы освободить память. Мой вопрос: все ли дескрипторы закрываются надлежащим образом и память освобождается Windows XP/7, если программы, использующие общую память, выходят без вызова CloseHandle? IE - есть ли возможность утечки памяти после того, как все процессы, использующие память, были закрыты?
2) Я использую MapViewofFile, чтобы получить указатель на память. В одном случае я предположил, что разделяемая память всегда будет существовать в контексте метода. Поэтому я сохранил возвращаемое значение MapViewOfFile в качестве указателя и закрыл дескриптор памяти, и я просто использую указатель на общую память (но все еще блокирую доступ к ней). Это безопасно или мне следует вызывать MapViewOfFile каждый раз, когда я обращаюсь к общему мему?
Спасибо,
Ян