Проблемка с Dll

  • Привет,


    такая проблемка: программа сначало загружает одну Dll (Dll1) и передаёт ей данные для работы.
    Dll1 в какой-то момент работы загружает вторую Dll (Dll2). В Dll2 находятся параметры с данными от Dll1.
    Теперь та же программа открывается ещё раз. Первая программа всё ещё существует и обе Dll тоже загружены. То есть теперь 2 программы. Так как Dll1 и Dll2 уже существуют, по второму разу они не загружаются и таким образом используются данные не второй, а первой программы. Что тут можно поделать?


    Написано в C++


    mir

  • пытаешься динамический код написать? к чему такие сложности?
    в win-api существуют функции для выгрузки dll. если про динамический код, то где-то видел статейку.

  • Может немного не в тему. Как можны выгрузить из памяти dll. Я имею в виду например можно убить процесс через таск менеджер а можно ли убить dll ?

  • Спасибо, я в курсе, что существуют implicitly и explicitly linking, но тут уже поздно что-либо менять, т.к. в концепте стояло динамическая загрузка.
    Этот же вопрос задал на другом форуме, тут ссылка, чтобы не повторятся.


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    @бармик: В C++: BOOL FreeLibrary(HMODULE hModule);


    mir

  • После завершения работы с библиотекой динамической компоновки, ее можно выгрузить из памяти процесса с помощью функции ::FreeLibrary:


    ::FreeLibrary(hMyDll);


    здесь подробнее про хедеры, менеджер памяти и прочее:
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Eduard-X ().