0
MSDN의 자습서 (Creating Named Shared Memory)를 따르려고합니다.CreateFileMapping()이 null을 반환합니다.
불행히도 NULL
은 CreateFileMapping()
입니다. 파일 shmfile.txt
이 내 파일 시스템에 있으므로 문제가 발생하지 않아도 매핑이 만들어지고 파일이 공유 메모리 개체로 사용됩니다.
내가 뭘 잘못하고 있니? 그런 다음, 페이지 파일의 매핑을 만들 파일 매핑의 이름으로 기존 파일의 이름을 사용하는 CreateFileMapping
을 이야기하고, 지금
...
#define BUF_SIZE 256
TCHAR szName[]=TEXT("C:\\Users\\joe\\shmfolder\\shmfile.txt");
int main(){
HANDLE hMapFile; // filehandle
LPCTSTR pBuf;
hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
BUF_SIZE, // maximum object size (low-order DWORD)
szName); // name of mapping object
if (hMapFile == NULL)
{
_tprintf(TEXT("Could not create file mapping object (%d).\n"), GetLastError());
return 1;
}
...
}
먼저'를 CreateFile()는'에 대한 핸들을 얻을해야 당신의 파일을 만든 다음 파일 핸들을 첫 번째 매개 변수로 사용하여'CreateFileMapping()'을 호출하십시오. 그리고 ANSI 문자열은 올바른 함수 버전 (CreateFileMappingA(), 넓은 문자열은'CreateFileMappingW()')을 호출해야합니다. – Chen