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