C ++ winapi читает из разделяемой памяти в std :: string - PullRequest
0 голосов
/ 08 мая 2018

У меня есть процесс чтения с доступом к общей памяти. Другой (записывающий) процесс записал данные в эту общую память, используя

CopyMemory((PVOID)pBuf, data.data(), data.size());

с данными std::string и pBuf PVOID размером size, созданными MapViewOfFile(). data содержит файл, загруженный с диска в процессе записи.

Есть ли способ получить data как std::string при чтении из общей памяти с помощью MapViewOfFile? Я попробовал некоторые подходы, которые я нашел здесь, на SO (например, просто приведение результирующего PVOID в процессе чтения к char*), но при любом подходе результирующий size() всегда равен 4, тогда как исходный данные намного больше.

...