6°C
завтра: 5°C
Погода в Перми
6°C
утром3°C
днем5°C
завтра5°C
Подробно
 63,79
+0.0046
Курс USD ЦБ РФна 24 апреля
63,7906
+0.0046
 71,75
+0.0243
Курс EUR ЦБ РФна 24 апреля
71,7453
+0.0243
PRM.Форум /Компьютеры Интернет Связь / Программирование /

Слинковать Bulder Library с Visual Application

  • Ламер

    Анонимный пользователь

    Всем, привет!
    Вопрос - как подшить библиотеку собранную в Builder к проекту, собираемому в Visual C++? Библиотека обычная си-шная. Можно конечно использовать COM, но тогда сильно много переделывать надо.

  • xray

    Анонимный пользователь

    А в чем проблема то? Собираешь DLL и вперед с песней..или я чего то не понимай??

  • Анонимный пользователь
    А ты пробовал? У меня при компиляции проекта в Visual 6.0, в котором подшит lib, собранный в Builder 6.0, выдаётся ошибка, что файл библиотеки испорчен.

  • experienced

    Сообщений: 699

    Нужно использовать динамическую линковку.

    Типа так:
    Например есть библиотека с нужными мне функциями
    int Get();
    void Set( int );
    Причем библиотека Сшная, если С++, то имена функций будут дополнены "манглированием", если не указать "extern С"

    typedef int (*PGETPROC)(void);
    typedef void (*PSETPROC)(int);

    int (*Get) (void);
    void (*Set) (int);

    HANDLE hl = LoadLibrary("sr.dll");
    if(!hl) ...
    //не удалось загрузить библиотеку


    Get = (PGETPROC)GetProcAddress(hl,"_Get");
    Set = (PSETPROC)GetProcAddress(hl,"_Set");

    if( !Get || !Set ) ...
    //нету таких функций;
    ...
    //используем функции как обычно
    Set(Code);
    int rnd = Get();
    ...
    //освобождаем библиотеку
    FreeLibrary(hl);

  • xray

    Анонимный пользователь

    Ессно...формат библиотек иморта у VC++ и у Buildera разный....если у Builder есть тулза, implib кажется, которая по dll генерит библиотеку иморта, ессно в формате BCB, то у VC++ по краней мере 6.0 версии аналогичного инстурмента нет, если я не ошибаюсь...так что через GetProcAdress...
    З.Ы. Чуть не забыл..ты под lib..я надеюсь имеешь в виду библиотеку иморта, а не статическую либу??!

  • xray

    Анонимный пользователь

    Чето у меня буковка "п" в слове "импорт" малость не пропечаталсь :улыб:

  • xray

    Анонимный пользователь

    В ответ на: Нужно использовать динамическую линковку.
    Ну здесь под словом "динамическая" имеется в виду неявная линовка (imlpicit linkage )

Записей на странице:

Перейти в форум

Модератор: