![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Как получить доступ к глобальной памяти в MS VC++, ведь структура форточек дает доступ указателям только в своем собственном адр. пространстве для каждой программы.
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Использовать длл с разделяемыми (shared) сегментами и специальными функциями для доступа к таким сегментам. Грузим такую длл-ку в адресное пространство двух разных процессов - и пожалуйста, данные можно передавать из процесса в процесс (как вариант - использовать shared-переменную как буфер для организации доступа к любым ячейкам памяти любого из процессов).
-------------------- ![]() |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Спасибо за ответ, но у меня нет такого опыта, может какой-нибудь мини-примерчик?
|
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Пример:
1) код из my.dll:
2) код из EXE, использующий разделяемую между процессами переменную g_dwSomeGlobalData:
-------------------- ![]() |
||||
|
|||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Спасибо за обучение, сейчас попробую!
|
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Спасибо, конечно, за это, но вообще я имел ввиду всю память компьютера, а эта прога позволяет только обмен между двумя процессами, которые оба загрузили эту библиотеку, или я чего не понял?
Короче, хочу узнать как работает ArtMoney. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Тогда нужно смотреть MSDN по ф-циям DebugActiveProcess / ReadProcessMemory / WriteProcessMemory. Или идти на wasm.ru и читать статьи по распределению памяти в Win32, по VMM и т.п.
-------------------- ![]() |
|||
|
||||
neurocod |
|
|||
Unregistered |
Можно обойтись без DLL при помощи CreateFileMapping - пример в MSDN
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |