Advertisement
piffy

MapOfFile_writer

Aug 31st, 2014 (edited)
508
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 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<<"Creazione di un file mapping...";
  12.     HANDLE hMapFile = CreateFileMappingA(
  13.         INVALID_HANDLE_VALUE, // Utilizza la memoria del file di paging
  14.         NULL,                 // Attributi di sicurezza predefiniti
  15.         PAGE_READWRITE,       // Protezione di lettura/scrittura
  16.         0,                    // Dimensioni massime dell'oggetto di mapping (parte alta)
  17.         sharedMemorySize,     // Dimensioni massime dell'oggetto di mapping (parte bassa)
  18.         sharedMemoryName      // Nome della memoria condivisa
  19.     );
  20.  
  21.     if (hMapFile == NULL) {
  22.         std::cerr << "Could not create file mapping object: " << GetLastError() << std::endl;
  23.         return 1;
  24.     }
  25.     cout<<"OK\n";
  26.     cout<<"Mappatura della memoria condivisa nello spazio degli indirizzi del processo...";
  27.     LPVOID pBuf = MapViewOfFile(
  28.         hMapFile,            // Handle dell'oggetto di mappatura del file
  29.         FILE_MAP_ALL_ACCESS, // Modalità di accesso
  30.         0,                   // Offset della parte alta dell'oggetto di mappatura del file
  31.         0,                   // Offset della parte bassa dell'oggetto di mappatura del file
  32.         sharedMemorySize     // Numero di byte da mappare
  33.     );
  34.  
  35.     if (pBuf == NULL) {
  36.         std::cerr << "Mappatura impossibile: " << GetLastError() << std::endl;
  37.         CloseHandle(hMapFile);
  38.         return 1;
  39.     }
  40.  
  41.     cout<<"OK!\nScrittura del messaggio...";
  42.     const char* message = "messaggio";
  43.     CopyMemory((PVOID)pBuf, message, strlen(message) + 1);
  44.  
  45.     cout<<"OK!\nAttesa di 10 secondi...";
  46.     Sleep(10000);
  47.     // Pulizia delle risorse
  48.     UnmapViewOfFile(pBuf);
  49.     CloseHandle(hMapFile);
  50.     cout<<"OK!\nChiusura e uscita";
  51.     return 0;
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement