|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - Как реализовать совместное использование проэцируемого файла в память? |
|
Win32 API - Как реализовать совместное использование проэцируемого файла в память?
|
Старожил Сообщения: 222 |
Профиль | Отправить PM | Цитировать Помогите решить такую задачю:
Есть 2 программы и файл data.dat с 20-30 числами от 1 до 100 нужно сделать следующее Программа №1. «Сортировка данных» 1. Включаем обработку события нажатия клавиши, и отслеживаем в нем нажатие пробела. Если пользователь нажал пробел, значит начинаем сортировку данных. 2. Выполняем проецирование файла в память. Используем для этого созданный файл data.dat. В результате получим доступ к данным как к обычному одномерному массиву. 3. Выполняем сортировку массива, любым из методов сортировки. Вставьте 1-но секундную задержку для каждой итерации сортировки массива, это позволит потом наглядней увидеть процесс сортировки. 4. По окончанию сортировки, программа выводит в окно, строку «Работа завершена». Программа №2. «Вывод файла данных в окно» 1. Выполняем проецирование файла в память. Используем для этого созданный файл data.dat. В результате получим доступ к данным как к обычному одномерному массиву. Этот же файл проецирует в память предыдущая программа. 2. Создаем таймер на 0.5 секунды. При получении сообщения от таймера, выполняем вывод всего массива в окно. Предусмотрите корректный перевывод данных в окно, без наложений. В окно выводим не числа из массива, а строки одного и того же символа, например «*», в количестве равном числу из массива. Запускаем на выполнение обе программы одновременно. Когда вторая программа запустилась и выполняет вывод данных в окно (выводит пока одну и туже картинку каждые пол секунды), нажимаем пробел в первой программе и она начинает сортировать массив. При этом, так как они данные берут из одного и того же файла (обе проецировали его себе в память), то первая вносит изменения переставляя данные при сортировке, а вторая выводит из себе в окно и мы видим ход процесса сортировки. Смог сделать токо прогу с выводом данных, и то при работе с проэцируемым фыйлом как с строкой. Проблемма в общем доступе 2х програм к данным и в том что не могу работать с проэцируемой областью как с массивом. |
|
------- Отправлено: 16:43, 14-03-2010 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать DaRiYs, ЕМНИП ОС вам не позволит прямое обращение к памяти выделенной другой программе. Этим достигается безопасность и изолированное(а следовательно безопасное) выполнение кода различных программ. (к сожалению нужный документ пока найти не удалось).
Для межпрограммного взаимодействия необходимо использовать именованные каналы или COM технологию. (Или иную технологию) Если просто запустить 2 программы на выполнение, то каждая создаст собственное в памяти отображение файла, совершенно не обратив внимание, на соседку. (зачем ей умничать, если пользователю так надо?) |
------- Отправлено: 21:30, 14-03-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата DaRiYs:
|
|
Отправлено: 23:41, 14-03-2010 | #3 |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 00:24, 15-03-2010 | #4 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать здесь пример и описание (англ)
http://msdn.microsoft.com/en-us/libr...48(VS.85).aspx Цитата DaRiYs:
|
||
Последний раз редактировалось pva, 15-03-2010 в 10:43. Отправлено: 10:14, 15-03-2010 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Ошибка - Конфликты/Совместное использование (прерывания) | iDrug | Microsoft Windows 2000/XP | 5 | 04-04-2011 08:02 | |
Совместное использование win2003 | NordWest | Microsoft Windows NT/2000/2003 | 7 | 06-11-2009 10:06 | |
Использование в ГУИ ВМР файла с альфа каналом | crashtuak | AutoIt | 0 | 08-08-2009 19:16 | |
Разное - Совместное использование сканера в локальной сети. | neja | Microsoft Windows 2000/XP | 2 | 27-09-2007 00:32 | |
как запретить использование файла на другом компьютере? | ghost99 | Microsoft Windows 2000/XP | 0 | 07-04-2006 11:49 |
|