| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > DLL MS Visual Studio в C++Buiilder |
| Автор: Бегемот 18.3.2014, 05:39 | ||||||||
| Всем привет. Прошу помощи по следующему вопросу. Имеется DLL. С ней lib и h в комплекте. Пытаюсь использовать библиотеку с применением статического сособа загрузки. Подключаю h-файл, добавляю к проекту lib-файл, все это вместе с dll в папку с проектом. Компилирую... получаю ошибку
Гуглю, понимаю, что библиотека создана в Visual Studio. Нахожу метод конвертации
Проверяю. Получаю lib размер которой 500 байт против 250 кбайт. Понимаю, что не гут. Дальше решил так
Получаю lib размеров 150 кбайт. Подключаю к проекту. И далее, если вызываю функцию из библиотеки, то работает, а вот если пытаюсь создать объект класса, то получаю сообщения, что не найдены конструктор и деструктор. Полагаю так, что если хоть что-то вызывается из библиотеки, значит lib прилинковался. Как же тогда создать объект класса?
|
| Автор: xvr 19.3.2014, 13:48 |
Никак. У MS VC и Borland C++ Bulder несовместимые объектные модели. И способы манглинга С++ имен тоже разные, т.ч. даже обычную С++ функцию не удасться вызвать |
| Автор: GraNit 29.7.2014, 10:23 |
| Не знаю как на счет C++, у меня получилось вызвать фукнкцию члена класса, только подключал к проекту динамически а не статически. Могу кинуть свой пример, однако в нее я никак не могу передать параметр. Думаю, что проект dll неправильно собираю. Что-то в настройках не так. Чтобы не быть голословным, ссылка на мой http://forum.vingrad.ru/index.php?showtopic=264228&view=findpost&p=2617903. |
| Автор: Akira 28.9.2014, 00:30 |
| Вариантов немного: 1. собирать из исходников, попутно убирая ms зависимые части. 2. конвертировать obj / lib файлы. 3. собрать dll в студии. 4. использовать сторонний линкер. |