На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> boost - работа с динамическими библиотеками
    А вот я чего то все глаза проглядел - может есть в бусте что то для работы с динамическими библиотеками?
    Интерфейсы то во всех системах более менее похожи, хоть и отличаются,.. ну типа dlopen/dlsyn/dlclose,
    LoadLibrary/GetProcAddress ...
    Мне кажется, что в бусте уже давно должны были унфицировать, ??? Может называется как то по хитрому?
    всем спасибо.
      нет.
        плохо.
          кстати...не понятно почему нет :-?
          могли бы и написать.
          возможно на досуге поковыряю в этом направлении.
            Цитата niXman @
            возможно на досуге поковыряю в этом направлении.

            Дополнишь boost? :D
              Цитата AZote @
              Дополнишь boost?

              нет. для себя, и развития.
                Хорошенькая такая дока. Linux и в конце по Windows.
                А отсутствует скорее всего из-за больших различий в экспорте и импорте данных. И соответственно если делать клиентский код, то нужен код и для создания библиотек, думаю, что уже задумывались над этим, но не получилось чего-то вменяемого.
                Можешь еще поискать тут.
                  Цитата
                  А отсутствует скорее всего из-за больших различий в экспорте и импорте данных. И соответственно если делать клиентский код, то нужен код и для создания библиотек, думаю, что уже задумывались над этим, но не получилось чего-то вменяемого.

                  В Qt есть набор макросов для обеспечения динамической загрузки dll. Но там, быть может, их генератор кода что-то генерирует дополнительно...
                    я недавно писал код для импорта из длл, для msvc, пока что код выглядит так
                    http://code.google.com/p/nabla-kb/source/browse/system/rce/cpp_rce_tools/rce/lasy_import.h
                    использование
                    ExpandedWrap disabled
                      __declspec(naked)
                      void __stdcall MessageBoxImp(int reserved, const char* text, const char* capt, int unused)
                          LASY_IMPORT_BYCHARNAME_STUB(MessageBoxImp, user32, "MessageBoxA")


                    если делать не функции, а указатели, то библиотечный код будет выглядеть существенно проще, и без асм-вставок
                      Цитата Hsilgos @
                      В Qt есть набор макросов для обеспечения динамической загрузки dll. Но там, быть может, их генератор кода что-то генерирует дополнительно...

                      В Qt есть QLibrary - класс обёртка выше перечисленных функций.
                        хороший синтаксис импорта функций из длл - это
                        как в дельфи
                        fucntion func():integer; external "module.dll";
                        как в VB
                        function func lib "module.dll" () As Boolean
                        как в С#
                        [DllImport("module.dll")] static extern void func();

                        т.е. все собрано в одном месте, прототип функции, ее длл [, ее имя\ординал]
                        при этом все пишется только 1 раз, ничего лишнего
                          если нужно загружать свои библиотеки - то рекомендую Poco::SharedLibrary, причем никаких Qt генераторов )
                            Цитата GoldFinch @
                            хороший синтаксис импорта функций из длл - это
                            как в дельфи
                            fucntion func():integer; external "module.dll";
                            как в VB
                            function func lib "module.dll" () As Boolean
                            как в С#
                            [DllImport("module.dll")] static extern void func();

                            т.е. все собрано в одном месте, прототип функции, ее длл [, ее имя\ординал]
                            при этом все пишется только 1 раз, ничего лишнего
                            Это не импорт сам по себе, а связывание имени с адресом из таблицы импорта. А речь идёт о динамической загрузке в рантайме.
                              Повстанець в случае с VB и C# - это динамическая загрузка в рантайме.
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0383 ]   [ 16 queries used ]   [ Generated: 18.05.24, 16:32 GMT ]