Advertisement
piffy

MapOfFile_reader

Aug 31st, 2014 (edited)
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. #include <windows.h>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int main() {
  6.     // Nome della memoria condivisa
  7.     const char* sharedMemoryName = "ZonaDiMemoria";
  8.     // Dimensione della memoria condivisa
  9.     const size_t sharedMemorySize = 256;
  10.  
  11.     cout << "Apertura del file mapping...";
  12.     HANDLE hMapFile = OpenFileMappingA(
  13.         FILE_MAP_ALL_ACCESS, // Modalità di accesso
  14.         FALSE,               // Non ereditabile
  15.         sharedMemoryName     // Nome della memoria condivisa
  16.     );
  17.  
  18.     if (hMapFile == NULL) {
  19.         cerr << "Impossibile aprire il file mapping: " << GetLastError() << endl;
  20.         return 1;
  21.     }
  22.     cout << "OK\n";
  23.     cout << "Mappatura della memoria condivisa nello spazio degli indirizzi del processo...";
  24.     LPVOID pBuf = MapViewOfFile(
  25.         hMapFile,            // Handle dell'oggetto di mappatura del file
  26.         FILE_MAP_ALL_ACCESS, // Modalità di accesso
  27.         0,                   // Offset della parte alta dell'oggetto di mappatura del file
  28.         0,                   // Offset della parte bassa dell'oggetto di mappatura del file
  29.         sharedMemorySize     // Numero di byte da mappare
  30.     );
  31.  
  32.     if (pBuf == NULL) {
  33.         cerr << "Mappatura impossibile: " << GetLastError() << endl;
  34.         CloseHandle(hMapFile);
  35.         return 1;
  36.     }
  37.     cout << "OK\n";
  38.  
  39.     // Lettura del messaggio dalla memoria condivisa
  40.     cout << "Lettura del messaggio dalla memoria condivisa...";
  41.     char message[sharedMemorySize];
  42.     CopyMemory(message, pBuf, sharedMemorySize);
  43.     cout << "OK\nMessaggio letto: " << message << endl;
  44.  
  45.     // Pulizia delle risorse
  46.     UnmapViewOfFile(pBuf);
  47.     CloseHandle(hMapFile);
  48.     cout << "Chiusura e uscita" << endl;
  49.     return 0;
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement