file — память, отображающая некоторые данные между двумя процессами

Итак, у меня есть первый процесс (process1.cpp), который берет список текущих процессов в системе и должен записать их в общую память вместе с их PID и PPID:

addr = (LPTSTR)MapViewOfFile(hMapFile,
FILE_MAP_ALL_ACCESS,
0,
0,
256);

И я пишу так:

int j = 0;
do
{
if (pe32.cntThreads < 3)
{
char currentProcessExeName = (char)pe32.szExeFile;
char currentProcessID = (char)pe32.th32ProcessID;
char currentProcessParentID = (char)pe32.th32ParentProcessID;

addr = (LPCTSTR)currentProcessExeName;
addr = (LPCTSTR)currentProcessID;
addr = (LPCTSTR)currentProcessParentID;

j = j + 3;
}
} while (Process32Next(hProcessSnap, &pe32));

Затем во втором процессе (process2.cpp) я хочу прочитать этот массив. Проблема в том, что я получаю либо ошибку «не могу прочитать память», либо нулевые значения.

введите описание изображения здесь

Вот как я делаю чтение во втором процессе:

    addr = (LPTSTR)MapViewOfFile(hMapFile,
FILE_MAP_ALL_ACCESS,
0,
0,
BUF_SIZE);

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

return 1;
}for (int i = 0; i < sizeof(addr); i = i + 3)
{
printf("\nProcess: %S [%d] [%d] \n", addr[i], addr[i + 1], addr[i + 2]);
}

Любое исправление для этого?

П.С .: Я разместил как можно меньше кода, чтобы не загружать страницу слишком много. При необходимости я выложу больше.

0

Решение

Задача ещё не решена.

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

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

По вопросам рекламы [email protected]