CSharedFile 클래스
공유 메모리 파일을 지원하는 CMemFile 파생 클래스입니다.
구문
class CSharedFile : public CMemFile
멤버
공용 생성자
속성 | 설명 |
---|---|
CSharedFile::CSharedFile | CSharedFile 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CSharedFile::D etach | 공유 메모리 파일을 닫고 해당 메모리 블록의 핸들을 반환합니다. |
CSharedFile::SetHandle | 공유 메모리 파일을 메모리 블록에 연결합니다. |
설명
메모리 파일은 디스크 파일처럼 동작합니다. 차이점은 메모리 파일이 디스크가 아닌 RAM에 저장됩니다. 메모리 파일은 빠른 임시 스토리지 또는 독립적인 프로세스 간에 원시 바이트 또는 직렬화된 개체를 전송하는 데 유용합니다.
공유 메모리 파일은 GlobalAlloc Windows 함수를 사용하여 할당되는 메모리의 다른 메모리 파일과 다릅니다. 클래스는 CSharedFile
전역적으로 할당된 메모리 블록(사용하여 GlobalAlloc
생성됨)에 데이터를 저장하며, 이 메모리 블록은 DDE, 클립보드 또는 기타 OLE/COM 균일한 데이터 전송 작업(예: 사용)을 사용하여 IDataObject
공유할 수 있습니다.
GlobalAlloc
는 malloc에서 반환된 포인터와 같이 메모리에 대한 포인터가 아닌 HGLOBAL 핸들을 반환 합니다. HGLOBAL 핸들은 특정 애플리케이션에서 필요합니다. 예를 들어 데이터를 클립보드에 배치하려면 HGLOBAL 핸들이 필요합니다.
CSharedFile
는 메모리 매핑된 파일을 사용하지 않으며 프로세스 간에 데이터를 직접 공유할 수 없습니다.
CSharedFile
개체는 자신의 메모리를 자동으로 할당할 수 있습니다. 또는 CSharedFile::SetHandle을 호출하여 사용자 고유의 CSharedFile
메모리 블록을 개체에 연결할 수 있습니다. 두 경우 모두 메모리 파일을 증가시키는 메모리는 0이 아닌 경우 nGrowBytes
크기가 증분된 값으로 자동으로 할당nGrowBytes
됩니다.
자세한 내용은 MFC의 파일 및 런타임 라이브러리 참조의 파일 처리를 참조하세요.
상속 계층 구조
CSharedFile
요구 사항
헤더: afxadv.h
CSharedFile::CSharedFile
개체를 CSharedFile
생성하고 해당 개체에 대한 메모리를 할당합니다.
CSharedFile(
UINT nAllocFlags = GMEM_DDESHARE | GMEM_MOVEABLE,
UINT nGrowBytes = 4096);
매개 변수
nAllocFlags
메모리를 할당하는 방법을 나타내는 플래그입니다. 유효한 플래그 값 목록은 GlobalAlloc를 참조하세요.
nGrowBytes
메모리 할당이 바이트 단위로 증가합니다.
CSharedFile::D etach
이 함수를 호출하여 메모리 파일을 닫고 메모리 블록에서 분리합니다.
HGLOBAL Detach();
Return Value
메모리 파일의 내용을 포함하는 메모리 블록의 핸들입니다.
설명
Detach에서 반환된 핸들을 사용하여 SetHandle을 호출하여 다시 열 수 있습니다.
CSharedFile::SetHandle
개체에 전역 메모리 블록을 연결하려면 이 함수를 CSharedFile
호출합니다.
void SetHandle(
HGLOBAL hGlobalMemory,
BOOL bAllowGrow = TRUE);
매개 변수
hGlobalMemory
에 연결할 전역 메모리에 대한 핸들입니다 CSharedFile
.
bAllowGrow
메모리 블록의 증가가 허용되는지 여부를 지정합니다.
설명
bAllowGrow가 0이 아닌 경우 필요에 따라 메모리 블록의 크기가 증가합니다(예: 메모리 블록 크기보다 파일에 더 많은 바이트를 쓰려는 경우).