다음을 통해 공유


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의 파일 및 런타임 라이브러리 참조의 파일 처리를 참조하세요.

상속 계층 구조

CObject

CFile

CMemFile

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이 아닌 경우 필요에 따라 메모리 블록의 크기가 증가합니다(예: 메모리 블록 크기보다 파일에 더 많은 바이트를 쓰려는 경우).

참고 항목

CMemFile 클래스
계층 구조 차트
CMemFile 클래스