Форум программистов, компьютерный форум CyberForum.ru

Разделяемая память - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
BlackVoiN69
 Аватар для BlackVoiN69
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 24
20.03.2013, 22:22     Разделяемая память #1
Добрый день!!!
Столкнулся вот с какой проблемой, мне необходимо написать программу крестики-нолики через разделяемую память. А как это сделать я не знаю. Помогите пожалуйста, либо литературой, либо кодом.
Буду приочень благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 22:22     Разделяемая память
Посмотрите здесь:

C++ Динамическая память
Статическая память,Динамическая память. C++
C++ разделяемая память
C++ Память
C++, Разделяемая память и apache CGI C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vbloodv
 Аватар для vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
20.03.2013, 22:29     Разделяемая память #2
Может boost::shared_ptr может ?
BlackVoiN69
 Аватар для BlackVoiN69
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 24
20.03.2013, 22:37  [ТС]     Разделяемая память #3
Необходимо написать консольное прложение. Короче запускаешь одно приложение, а потом второе. И начинаешь играть соответсветнно. Вот такие дела, и причем нужно использовать разделяемую память
Nagdiel
 Аватар для Nagdiel
114 / 114 / 3
Регистрация: 23.12.2012
Сообщений: 195
20.03.2013, 23:17     Разделяемая память #4
Qt -> QSharedMemory
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.03.2013, 23:20     Разделяемая память #5
BlackVoiN69, винда?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
HANDLE hMapObject = CreateFileMapping( 
                INVALID_HANDLE_VALUE, // используем файл подкачки
                NULL,                 // атрибуты защиты по умолчанию
                PAGE_READWRITE,       // доступ к чтению/записи
                0,                    // размер: старшие 32 бита
                Size,            // размер: младшие 32 бита
                _T("NAME"));     // имя объекта отображения
 
           if (!hMapObject)
           {
               //ERROR
           }
 
LPVOID lpv = MapViewOfFile( 
                      hMapObject,     // объект представления проецирования
                      FILE_MAP_WRITE, // доступ к чтению записи
                      0,              // старшее смещение:  от отображения
                      0,              // младшее смещение:   начало
                      0);
           
           if (!lpv)
           {
                //ERROR
           }
 
           if (GetLastError() != ERROR_ALREADY_EXISTS)
           {
                // Первый процесс
           }
           else
           {
                // Второй, третий и т.д. процесс
           }
 
 
           UnmapViewOfFile(lpv);
 
           CloseHandle(hMapObject);
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
20.03.2013, 23:29     Разделяемая память #6
курите инфу на тему Inter-Process Communication (IPC)
http://ru.wikipedia.org/wiki/%D0%9C%...B2%D0%B8%D0%B5
и реализацию на разделяемой памяти. лучше пользоваться готовыми быблиотеками чем голым системным API.
К упомянутому Qt можно добавить еще бустовую реализацию:
http://www.boost.org/doc/libs/1_53_0...processes.html
BlackVoiN69
 Аватар для BlackVoiN69
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 24
20.03.2013, 23:33  [ТС]     Разделяемая память #7
go, да винда. разобрался, только один вопрос, а в каком месте писать чтобы процессы чередовались, и могли считать и записать данные?
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
21.03.2013, 02:45     Разделяемая память #8
А если использовать dll?
Лепишь dll, делаешь нужную тебе секцию разделяемой и вуаля. Оба процесса загружают эту dll, один в неё пишет другой из неё читает, возможны варианты. Вот тебе и разделяемая память.
BlackVoiN69
 Аватар для BlackVoiN69
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 24
21.03.2013, 09:13  [ТС]     Разделяемая память #9
я знаю как реализовать, но у меня проблема с синтаксисом. Как записать я не знаю
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.03.2013, 10:39     Разделяемая память #10
Цитата Сообщение от kravam Посмотреть сообщение
один в неё пишет другой из неё читает
Не понял? Поясните?
Цитата Сообщение от kravam Посмотреть сообщение
Вот тебе и разделяемая память.
ТСу нужны общие данные, хотя я и сам не знаю, что ему нужно.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
21.03.2013, 11:28     Разделяемая память #11
Цитата Сообщение от go Посмотреть сообщение
Не понял? Поясните
А чё непонятного? Один пишет, другой читает. Всё просто. Если именно общие данные для обоих процессов нужны (оба читают), тогда всё ещё проще. Пусть уточняет.
BlackVoiN69
 Аватар для BlackVoiN69
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 24
22.03.2013, 20:48  [ТС]     Разделяемая память #12
мне нужно реализовать крестики нолики. Команды крестика и нолика записываются в динамическую память что непонятного????
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
22.03.2013, 23:50     Разделяемая память #13
Ну в первом посте ты ничего не говорил про динамическую память. Между прочим.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 00:42     Разделяемая память
Еще ссылки по теме:

Не выделяется память C++
C++ Динамическая память с++
C++ Выделяется ли память?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
23.03.2013, 00:42     Разделяемая память #14
Цитата Сообщение от BlackVoiN69 Посмотреть сообщение
мне нужно реализовать крестики нолики. Команды крестика и нолика записываются в динамическую память что непонятного????
Все непонятно ...
Судя по
Необходимо написать консольное прложение. Короче запускаешь одно приложение, а потом второе. И начинаешь играть соответсветнно.
Тебе нужно организовать сетевое приложение типа клиент/сервер (если по хорошему и без изврата подходить к задаче)
Нафига тут
нужно использовать разделяемую память
Вообще не понятно ...
Yandex
Объявления
23.03.2013, 00:42     Разделяемая память
Ответ Создать тему
Опции темы

Текущее время: 09:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru