Автор: royt
Дата сообщения: 27.01.2006 14:46
Кто уже юзал C++ Builder в Borland Developer Studio 2006 и может подсказать: научился ли он наконец линковать .dll от Visual C++ 6.0, экспортирующие классы? Т.е. не просто функции, и не .NET-классы - а именно "старые" библиотеки (совместимые с Visual C++ 6), содержащие классы.
Еще на всякий случай поясняю, о чем речь: допустим есть какая-то .dll-ка, она экспортирует функции. Если она "создана" на Visual C++ и с ней идет файл .lib (библиотека импорта), то для использования этой .dll в проекте на C++ Builder имеющийся .lib (как он уже есть) - обычно не канал, но можно было создать новый .lib, в формате понимаемом Borland C++ (делается это с помощью утилиты implib).
Если же в библиотеке (.dll) находятся не просто функции, а классы (т.е. конечно тоже функции, но теперь задекорированные еще хитрее) - то создать библиотеку импорта уже никак не удастся, т.к. в этом случае во-первых по одной инфе из таблиц экспорта .dll невозможно получить всю инфу для получения .lib для классов, во-вторых есть другие проблемы (не буду вдаваться в подробности - просто немного по-разному устроено обращение к членам классов у BC++ и VC++). Поэтому в случае классов выход один - писать обертку. Так вот, интересует - может Borland все-таки научился линковаться с .lib-ами от VC++ 6 (работать с его классами), или хотя бы какие-то утилитки присовокупил?...
ps. Интересует именно то, что описываю - линковка на автомате (или "полу-автомате" - лишь процесс был хоть как-то автоматизирован, а не ручками приходилось что-то писать), а не способы обхода ситуации с помощью оберток и тому подобного. (Имеется библиотека с классами, имеющими большой набор членов-функций, которая притом часто обновляется - поэтому "обертку" использовать очень неудобно).