Главная Новые темы Список тем Задать вопрос Поиск  

Форум "C++"


С++, его предки и потомки


 #0 Каспиан 19.11.06 07:21:07 - 19.11.06 08:27:31

как можно работать с DLL?



Здравствуйте уважаемые,
Объясните пожалуйста - что происходит если однажды загруженную DLL паралельно загружает еще одна программа?? в памяти - это будут как бы два экземпляра библиотеки и переменные, объявленные в DLL - тоже с разными адресами? И как сделать так, чтобы несколько программ, загрузившие одну ДЛЛ могли работать как бы с одним ее экземпляром в памяти??
Если что не понятнов вопросе - я разъясню подробней, просто еще слабо ориентируюсь в предметной области :)
Зарание спасибо Цитата

 #1 Axis_of_Evil © 19.11.06 08:27:31

<если я ничего не путаю ..>

>что происходит если однажды загруженную DLL паралельно загружает еще одна программа??
Windows видит, щто dll уже загружена и проецирует ее (уже загруженную) на адресное пространство программы (второй) , которая ее загрузила.


>в памяти - это будут как бы два экземпляра библиотеки и переменные, объявленные в DLL - тоже с разными адресами?
экземпляр - один (см. выше), переменные, объявленные в dll - разные для каждого процесса. разные адреса - елси в смысле адреса в адресном пространстве процесса, то весьма вероятно, щто разные.

>И как сделать так, чтобы несколько программ, загрузившие одну ДЛЛ могли работать как бы с одним ее экземпляром в памяти??
щто именно требуется? совместное использование переменных dll? -> использовать shared memory (или как оно в Windows называется - Механизм файлов, отображённых в память (MMF - Memory Mapped Files))


почитать имеет смысл вот ето




  • Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов