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

Как двум приложениям совместно использовать DLL? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Многомерные массивы и STL http://www.cyberforum.ru/cpp-beginners/thread479558.html
Господа, не подскажете, как создавать многомерные массивы, например с помощью <vector> ? И, соответственно, как к ним обращаться? Спасибо!
C++ Проблема с ISAPI фильтром: html код обрывается Сделал фильтр - переводчик страниц. Работает он примерно так: 1. На событие OnReadRawData делаю реквест на удаленный сервер, 2. получаю ответ, 3. перевожу его, 4. запихиваю... http://www.cyberforum.ru/cpp-beginners/thread479528.html
Как убрать программу из TaskBar(и вернуть обратно)? C++
Подскажите кто нибудь как убрать программу из TaskBar(и вернуть обратно).
C++ Службы NT на BCB 6.0
Подскажите линк по subj в части построения многопоточного доступа к БД используя ADO, plz. С потоками не проблема, но вот ведут они себя в службе, мягко говоря как-то не правильно.
C++ Маленькая кучках глупых вопросов (отвечайте по проще, я еще ничего не знаю ;) http://www.cyberforum.ru/cpp-beginners/thread479454.html
Вопрос номер 1. Как получить кол-во символов в строке (из эллемента EditBox)? Вопрос номер 2. Как выделить каждый символ (может в отдельный масив, но суть в том, что ... м .. предположим, что...
C++ Как копировать строку из эл-та EditBox? Из эл-та ListBox научился копировать, скажите, как копировать строку из эл-та EditBox? просто надо скопировать то, что в ней хранится так, чтобы мог вставить содержимое куда угодно (в тот же самый... подробнее

Показать сообщение отдельно
OnLineOFF
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 3
07.10.2009, 14:24
Приветик!
Проблема понятна...
То что Вы там назвали ссылкой на dll_ есть 'дескриптор',
что полностью подчеркивает принадлежность конкретного dll_ модуля вашему адрессному пространству.

Выше упомянутая проблема может быть решена методом наследования таблици дескрипторов родительского процесса. Для этого новый процесс конечно должен быть дочерним по отношению к тому у котрого собирается наследовать таблицу.
Все это делается средствами API.

А теперь, как это все сделать не прибегая к выше упомянутому методу:
В dll_ надо создать 'секцию' доступную всем копиям dll_, такую себе shared память(одно и тоже значение во всех копиях), как это сделать:

Код
#pragma data_seg('Shared')
int global = 0; //Инициализация обязательна
#pragma data_seg()
#pragma comment (linker , '/Section:Shared, rws') //Чтение, запись
Так вот - меняем значение global в одной dll_ изменения отображаются сразу во все спроэкцированных копиях.

Удачи
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru