Есть две библиотеки с функциями на основе экспорта из C.
Обе выглядят примерно так:
extern "C" lib lib1 declare function funct1() declare function funct2() ... end extern
Так получается, что нужно использовать сразу 2 версии Проблема в том, что функции при декларации получают одинаковые имена - в исходных С-либах они одинаковые.
Знаю, можно одну из них скомпилировать в dll и обойти эту проблему. А нет ли еще какого-то способа?
declare sub q Lib "One" alias "ONE" () declare sub q1 Lib "OneOld" alias "ONE" ()
Компиль попросту будет использовать только верхнюю декларацию. Так что наверно только в DLL вторую либу собирать. Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
Понятно. Собственно, речь опять о моей любимой IUP. Для GUI использую старую версию 3.5, а для диалога выбора шрифта 3.12, потому что старая не дружит с win 8 Сначала 3.12 вызывал из dll , а теперь я дошел до того, что смог использовать статическую libiup.a 3.12 (скомпилированную и выложенную самими создателями IUP, что удобно). А вот полностью разобраться со всеми этими .a либами и переписать полноценную 3.12-3.13 для использования в FB пока не могу, но вроде смысл всех этих конструкций наконец дошел до меня
С другой стороны, удалось сделать последнюю fltk внедряемой в файл программы без необходимости таскать dll. Переписал несколько тысяч функций Однако даже упакованные файлы получаются больше 500 кб, многовато.