Передача DWORD * в сопоставленный файл

Этот пример http://msdn.microsoft.com/en-us/library/windows/desktop/aa366551(v=vs.85).aspx передает TCHAR, но как я могу сделать это передать DWORD? Я попытался ниже, но я не могу преобразовать параметр 1 из ‘DWORD *’ в ‘const wchar_t *’.

DWORD* pid=new DWORD[20];

HANDLE hMapFile;
DWORD pBuf;
TCHAR szName[]=TEXT("Global\\mapFile");

//il creez
hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE,    // use paging file
NULL,                    // default security
PAGE_READWRITE,          // read/write access
0,                       // maximum object size (high-order DWORD)
256,                      // maximum object size (low-order DWORD)
szName);                 // name of mapping object

if (hMapFile == NULL)
{
_tprintf(TEXT("Could not create file mapping object (%d).\n"),
GetLastError());
return 1;
}

pBuf = (DWORD) MapViewOfFile(hMapFile,   // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
256);

if (pBuf == NULL)
{
_tprintf(TEXT("Could not map view of file (%d).\n"),
GetLastError());

CloseHandle(hMapFile);
return 1;

}

CopyMemory((LPVOID)pBuf, pid, (_tcslen(pid) * sizeof(TCHAR)));

0

Решение

Mapviewoffile возвращает LPVOID.
Следующим способом это будет работать:

DWORD*  pBuf = (DWORD*) MapViewOfFile(hMapFile,   // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
256);

if (pBuf == NULL)
{
_tprintf(TEXT("Could not map view of file (%d).\n"),
GetLastError());

CloseHandle(hMapFile);
return 1;

}

CopyMemory((LPVOID)pBuf, pid, (20* sizeof(DWORD)));
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector