Katakanlah saya ingin membuat fungsi pembungkus ke BuatFile
Fungsi baru ini tidak akan menghasilkan file sebenarnya di disk tetapi buat objek pemetaan file dan kembalikan pegangan ke objek baru.
Saya telah melihat contoh ini, Membuat Memori Bersama Bernama, dan mencoba mengimplementasikan fungsi saya:
#define BUF_SIZE 256
TCHAR szName[] = TEXT("Global\\MyFileMappingObject");
HANDLE MyCreateFile()
{
HANDLE 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
return hMapFile;
}
Masalah
Namun, bagi saya ini tampak oke ketika mencoba menggunakan HANDLE
yang dikembalikan di ReadFile fungsi Saya mendapat kode kesalahan 6 The handle is invalid.
Pertanyaan
Bisakah objek pemetaan file dan objek file digunakan secara bergantian? Jika iya, lalu apa masalahnya dengan kode saya? Jika tidak, tahukah Anda bagaimana fungsi tersebut dapat diimplementasikan?
ReadFile
pada wilayah memori bernama? Ini seharusnya digunakan denganMapViewOfFile
. - person   schedule 19.03.2015ReadFile
hanyalah contoh penggunaanHANDLE
yang dikembalikan dariMyCreateFile
. Ini di sini untuk menunjukkan bahwa implementasiMyCreateFile
salah dan saya mencoba memahami alasannya. - person idanshmu   schedule 19.03.2015