Je voudrais écrire dans la mémoire partagée, puis vider le contenu dans un fichier dans l'API win32. Actuellement, j'ai ce code:Comment écrire dans la mémoire partagée en C++?
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);
Cependant, la ligne 31 (appel sprintf) donne l'erreur:
error: cannot convert `void*(*)(void*, DWORD, DWORD, DWORD, DWORD)'
to `char*' for argument `1' to `int sprintf(char*, const char*, ...)'
J'ai essayé casting le lpMapAddress à LPTSTR, mais il n'a pas d'effet. Qu'est-ce que je fais mal? Ou y a-t-il une meilleure façon de le faire?
Maintenant, je me sens stupide :) – pypmannetjies