我有两个关于使用共享内存的问题需要解决。我使用CreateFileMapping在两个进程之间创建一个共享内存区域。
1) 我知道我需要对从CreateFileMapping或OpenFileMapping调用返回的每个句柄调用CloseHandle以释放内存。我的问题是,如果使用共享内存的程序退出而没有调用CloseHandle,所有句柄是否得到适当关闭和内存释放?也就是说,在关闭了使用内存的所有进程后,是否存在内存泄漏的可能性?
2) 我使用MapViewOfFile来获取指向内存的指针。在一个实例中,我假设共享内存将始终存在于方法的上下文中。因此,我将MapViewOfFile的返回值保存为指针,并关闭了内存的句柄,只是使用指向共享内存的指针(但仍然锁定对它的访问)。这样安全吗,还是每次访问共享内存时都应该调用MapViewOfFile?
谢谢,
Ian