Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Совместимость Builder C++ с Visual C++


Автор: umator 2.9.2002, 19:47
В чём причина невозможности работы с объектами C++ (в особенности содержащими виртуальные функции) создаваемыми Builder в программе созданной на Visual C++. На Builder C++ создана DLL, использует её программа на Visual C++. Функции DLL возвращают создаваемые ими объекты.

Автор: Fantasist 3.9.2002, 04:02
То есть это в общем-то не о совместимости  С++ компиляторов по отношению к языку С++, а об использовании скомпилированного кода одним компилятором в другом. Ну что ж, могу с уверенностью сказать, что по поводу того, как нужно создавать скомпилированный код, никаких стандартов нет. Так что о какой совместимости может быть речь? Если же ты хочешь получить совместимость объектов на уровне бинарного кода, используй COM технологию. Ну или по крайней мере какую-то ее адаптацию к своим нуждам.

Автор: umator 3.9.2002, 04:30
Я столкнулся с такой проблемой, что не могу использовать в программе написанной на Visual C++ динамические библиотеки (DLL) написанные на Builder C++ по причине того, что функции последних создают и возвращают указатели на объекты с виртуальными функциями в своём формате, а программа о нём ничего не зная пытается интерпретировать их по своему.

Автор: Fantasist 3.9.2002, 08:58
Цитата(umator @ 02.9.2002, 21:30)
Я столкнулся с такой проблемой, что не могу использовать в программе написанной на Visual C++ динамические библиотеки (DLL) написанные на Builder C++ по причине того, что функции последних создают и возвращают указатели на объекты с виртуальными функциями в своём формате, а программа о нём ничего не зная пытается интерпретировать их по своему.

Правильно. Об этом я и сказал, не так ли. А что от нас ожидается узнать.  :)
В том смысле, что мы должны ответить?

Автор: umator 3.9.2002, 16:37
Вопрос задан в самом первом пункте :) То, что один код не работает с другим в этом я уже удостоверился. Мне бы хотелось выяснить причину. Что такого делает Builder C++ что не правильно понимается Visual C++. Если есть какая-то информация из достоверного источника, то буду очень признателен...

Автор: Fantasist 4.9.2002, 03:44
Цитата
Что такого делает Builder C++ что не правильно понимается Visual C++.


Да что угодно. Это его(компилятора) личное дело. Как хочет так и генерит код. Пользователя это заботить не должно, ибо он все равно ничего с этим поделать не может(по большому счету).  Например, в билдере, насколько я помню, все классы наследуются от TObject. Конечно, можно взять отладчик, дизассемблер, да и посмотреть что за код там получается, но это вряд ли тебе даст что-то полезное.

Автор: umator 4.9.2002, 16:17
А есть ли у тебя сведения по конкретней? Думаю не я один сталкивался с такой проблемой и наверняка кто-нибудь уже посвятил своё время изучению данной проблемы.

Автор: Fantasist 5.9.2002, 02:55
Смотря какую проблему ты имеешь в виду. Если проблема в использовании объектов - используй COM. Если вопрос о том, какой генериться код, то таких сведений у меня нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)