如何用C++写入共享内存?

pyp*_*ies 0 c++ winapi shared-memory

我想写共享内存,然后将内容转储到win32 api中的文件.目前我有这个代码:

HANDLE hFile, hMapFile;
  LPVOID lpMapAddress;

  hFile = CreateFile("input.map",
  GENERIC_READ | GENERIC_WRITE,
  0,
  NULL,
  OPEN_EXISTING,
  FILE_ATTRIBUTE_NORMAL,
  NULL);

  hMapFile = CreateFileMapping(hFile,
  NULL,
  PAGE_READWRITE,
  0,
  0,
  TEXT("SharedObject"));

  lpMapAddress = MapViewOfFile(hMapFile,
  FILE_MAP_ALL_ACCESS,
  0,
  0,
  0);

  sprintf(MapViewOfFile, "<output 1>");

  UnmapViewOfFile(lpMapAddress);
  CloseHandle(hFile);
  CloseHandle(hMapFile);
Run Code Online (Sandbox Code Playgroud)

但是,第31行(sprintf调用)给出错误:

error: cannot convert `void*(*)(void*, DWORD, DWORD, DWORD, DWORD)' 
to `char*' for argument `1' to `int sprintf(char*, const char*, ...)'
Run Code Online (Sandbox Code Playgroud)

我已经尝试将lpMapAddress转换为LPTSTR,但它没有任何效果.我究竟做错了什么?或者有更好的方法吗?

Mic*_*ker 8

在里面

sprintf(MapViewOfFile, "<output 1>"); 
Run Code Online (Sandbox Code Playgroud)

线,你想lpMapAddress,不是MapViewOfFile.或者(char*)lpMapAddress说准确.