pGlobal[4100]=1; //ВСЕ компилируется но при работе программы на этой строчке выдает ошибку, (т.е. если адресс больше 4096)
"Access violation at adress 00401D5C in module 'Proect1.exe'. Write address 011F1004."
Здравствуйте 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 байт.
Здравствуйте Willi, Вы писали:
W>Здравствуйте 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."
W>По хорошему оно должно вылетать по ошибке в случае если ты адресуешь далше 8-го байта от pGlobal, посмотри что ты передаешь в качестве пятого памаетра в CreateFileMapping. Вылетает после после 4096 скорее всего потому, что минимальный размер страницы равен 4Kb, т.е. 4096 байт.
В том то идело что какое бы значение dwMaximumSizeLow я бы не ставил, всеравно вылетает ошибка, и как увеличить минимальный размер страницы.
Здравствуйте Bill133, Вы писали:
B>Здравствуйте Willi, Вы писали:
W>>Здравствуйте 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."
W>>По хорошему оно должно вылетать по ошибке в случае если ты адресуешь далше 8-го байта от pGlobal, посмотри что ты передаешь в качестве пятого памаетра в CreateFileMapping. Вылетает после после 4096 скорее всего потому, что минимальный размер страницы равен 4Kb, т.е. 4096 байт.
B>В том то идело что какое бы значение dwMaximumSizeLow я бы не ставил, всеравно вылетает ошибка, и как увеличить минимальный размер страницы.
Размер страницы — никак.
Четвертый и пятый параметр CreateFileMapping задают размер маппинга.
Кроме того важное значение имеет последний параметр MapViewOfFile. Он определяет количество байт которое ты хочешь отбразить в свою память.
Здравствуйте Willi, Вы писали:
W>Здравствуйте Bill133, Вы писали:
B>>Здравствуйте Willi, Вы писали:
W>>>Здравствуйте 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."
W>>>По хорошему оно должно вылетать по ошибке в случае если ты адресуешь далше 8-го байта от pGlobal, посмотри что ты передаешь в качестве пятого памаетра в CreateFileMapping. Вылетает после после 4096 скорее всего потому, что минимальный размер страницы равен 4Kb, т.е. 4096 байт.
B>>В том то идело что какое бы значение dwMaximumSizeLow я бы не ставил, всеравно вылетает ошибка, и как увеличить минимальный размер страницы.
W>Размер страницы — никак.
W>Четвертый и пятый параметр CreateFileMapping задают размер маппинга. W>Кроме того важное значение имеет последний параметр MapViewOfFile. Он определяет количество байт которое ты хочешь отбразить в свою память.
W>Вот так все работает W>