Re: Обмен данными между процессами
От: Willi  
Дата: 15.03.02 09:30
Оценка:
Здравствуйте Bill133, Вы писали:

B>TCHAR *pGlobal;


B>HANDLE hFile = INVALID_HANDLE_VALUE;

B>HANDLE hMap = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 8, "_OPC_DATE_");
B>pGlobal =(TCHAR *):: MapViewOfFile(hMap,FILE_MAP_ALL_ACCESS,0,0,100);

B>pGlobal[4100]=1; //ВСЕ компилируется но при работе программы на этой строчке выдает ошибку, (т.е. если адресс больше 4096)

B>"Access violation at adress 00401D5C in module 'Proect1.exe'. Write address 011F1004."

По хорошему оно должно вылетать по ошибке в случае если ты адресуешь далше 8-го байта от pGlobal, посмотри что ты передаешь в качестве пятого памаетра в CreateFileMapping. Вылетает после после 4096 скорее всего потому, что минимальный размер страницы равен 4Kb, т.е. 4096 байт.
\/\/i||i
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.