Здравствуйте, ZestMan, Вы писали:
ZM>Пробовал через mapping file, но там возникает проблема с указателями
Да, конечно. Маппируются-то они в разные адреса в разных процессов. Надо вместо указателей использовать смещения от базового адреса. Они всегда валидны.
Можно, правда, попытаться их смаппировать по одному и тому же адресу в обоих процессах, используя MapViewOfFileEx
LPVOID WINAPI MapViewOfFileEx(
__in HANDLE hFileMappingObject,
__in DWORD dwDesiredAccess,
__in DWORD dwFileOffsetHigh,
__in DWORD dwFileOffsetLow,
__in SIZE_T dwNumberOfBytesToMap,
__in LPVOID
lpBaseAddress);
но это как повезет : место может быть и занято.
ZM>Как вариант мне посоветовали extern "C"__declspec(dllexport), сказав что из .exe тоже можно экспортировать, но у меня что-то так и не получилось... хотя если создать общую dll для обоих процессов, тогда нормально получаю указатель на нужную структуру обоими процессами.
Именно с DLL и проще всего. См. #pragma dataseg. Если использовать именованную разделяемую секцию, то она будет одной и той же для всех проекций этой DLL во все процессы.
http://rsdn.ru/forum/dotnet/3182030.1.aspxАвтор: Pavel Dvorkin
Дата: 20.11.08