Win32 APIを使用してファイルから共有メモリに書き込むにはどうすればよいですか?
私はこのコードを持っています:
hFile = CreateFile("input.map",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
hMapFile = CreateFileMapping(hFile,
NULL,
PAGE_READWRITE,
0,
0,
TEXT("SharedObject"));
lpMapAddress = (LPTSTR) MapViewOfFile(hMapFile,
FILE_MAP_ALL_ACCESS,
0,
0,
0);
ReadFile(
hFile,
lpMapAddress,
75,
&bytesRead,
NULL);
sprintf((char*)lpMapAddress, "<output 1>");
printf((char*) lpMapAddress);
ただし、printf呼び出しは「<output 1>」のみを返し、ファイルの内容は返しません。
編集:問題を見つけました。sprintfを呼び出すときに、入力ファイルに書き込んでいます。しかし、私はまだ理由がわかりません...