저는 Memory Mapped Files에 익숙하지 않아 조금 잃어 버렸습니다.메모리 매핑 파일 - 파일이 아닌 구조를 매핑 하시겠습니까?
파일이 있으면 MMaps를 사용하여 파일을로드하고 다양한 프로세스에서 즉시 액세스 할 수 있다는 것을 알고 있습니다.
내 경우에는 프로세스 A에 연결된 DLL을 만들고 해당 DLL에 프로세스 A가 준비한 cSurface에 대한 포인터가 제공되었습니다. 그 C 서페이스의 데이터를 프로세스 B와 공유해야합니다. 빈 MMap을 호출하고 프로세스 A의 표면을 복사하여 프로세스 B에서 다시 복사해야합니다.
내 표면을 파일처럼 매핑 할 수 있으므로 MMap이 이미 표면 데이터를 가리킬 때 (내가 SomeTextFile.txt를로드했을 때와 같이)?
내 계획은 이론적으로 Proc A의 서페이스에 대한 포인터를 받고, 해당 표면의 메모리를 주어진 이름으로 공유하도록 지시하고, 뮤텍스를 사용하여 액세스를 조정하는 것입니다. 두 프로세스 모두 복사가 번거롭지 않은 동일한 물리적 사본.
그럴 수 있습니까?
그냥 내 게시물을 좀 더 명확하게 만들 것이라고 생각했습니다. 'char buffer [SUPER_MASSIVE]'라고 불리는 거대한 버퍼와'hSuperMassiveFile'이라는 거대한 파일이 있다고 가정하십시오. 나는'CreateFileMapping (hSuperMassiveFile, ...)'을 실행하여 SuperMassiveFile을 공유 할 수 있었지만, 나의 버퍼와 똑같이하고 싶습니다. 대신'CreateFileMapping ((HANDLE) buffer, ...)'를 수행하고 빈 맵을 요청할 필요없이 내 버퍼를 공유 한 다음 내 버퍼를'CopyMemory()'할 필요가 있습니까? –