Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

dll - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблоны и параметр по умолчанию http://www.cyberforum.ru/cpp-beginners/thread929600.html
Добрый день. Вроде всё делаю по учебнику, но компилятор не пропускает: #include <iostream> #include <vector> #include <cstdlib> template<class T> bool DefaultComparand(const T &, const T &); ...
C++ Указатель вне корректного диапазона void f(T a) { T v; T p* = &v; p--; *p = a; // тут p вне корректного диапазона, почему? } объясните этот момент плиз, я так понял, что когда мы дикрементируем указатель (p--), то т.к.... http://www.cyberforum.ru/cpp-beginners/thread929584.html
C++ Погрешность вычислений
Читаю книгу Дейтелов "Как программировать на С++", попалась следующая задача, где нужно вводить кол-во бензина, пройденный путь, исходя из этих данных вычислять миль/галлон и вычислить средний расход...
C++ Битовые операции
Здраствуйте, помогите, пожалуйста! Надо написать три функции, используя только битовые (для первых двух) и только битовые и арифметические операции (для третей), которые: 1) Функция, которая...
C++ Виртуальные базовые классы: какие требования предъявляются к иерархии наследования? http://www.cyberforum.ru/cpp-beginners/thread929534.html
класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? попитался реализовать... // Using virtual base classes. #include...
C++ Какие требования нужно выполнить, чтобы стать Junior developer, Middle и Senior developer? Быть может не совсем в ту ветку форума написал, но мне показалось, что здесь я смогу получить квалифицированный ответ с большей вероятностью! Если что, уж извини админ! Пока только учусь в... подробнее

Показать сообщение отдельно
Убежденный
Ушел с форума
Эксперт С++
15691 / 7201 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
27.07.2013, 20:31
Цитата Сообщение от Mr. Hat Посмотреть сообщение
Что такое экспорт в стиле C? Это метод написания функций в самой dll?
Упрощенно говоря, это экспорт только C-шных программных интерфейсов (функции + переменные).
Дело в том, что программный интерфейс самой Windows является C-шным и любой язык/компилятор,
если он хочет быть популярным под эту платформу, должен по меньшей мере уметь вызывать
C-шные функции из dll. То есть, интерфейсы в стиле C являются переносимыми внутри Windows.
А вот про C++ такого сказать, к сожалению, нельзя. Если, например, конструктор некоего класса
внутри dll кидает исклюение std::runtime_error, как должен реагировать на него вызывающий код,
написанный на Delphi, к примеру ? Или на VBA, где нет понятия конструкторов/деструкторов ?
Это называется двоичная несовместимость. Даже между компиляторами C++ она практически отсутствует.
Поэтому если вы хотите что-то экспортировать из dll относительно переносимым образом, выбор
невелик - или экспорт в стиле C, который поддерживается всеми популярными компиляторами, или
использование COM.

Цитата Сообщение от Mr. Hat Посмотреть сообщение
Ну допустим, мы можем перепрограммировать dll. Поможет ли экспорт в стиле с использовать dll, написанную на C++, в фортрановской программе? Или наоборот - фортрановскую dll в программе на c++?
Не без некоторых дополнительных требований. Но в целом - да, поможет.

Цитата Сообщение от Mr. Hat Посмотреть сообщение
И существует ли кроссплатформенный аналог COM?
XPCOM. Ну еще CORBA можно вспомнить, хотя это из немного другой "оперы".

Цитата Сообщение от Mr. Hat Посмотреть сообщение
Ну, не обязательно dll. И библиотека необязательно динамическая. Неужели нет кросс-платформенного решения? Почему необходимо привязываться к конкретной ОС, если в библиотеке не используются никакие функции API ОС?
Разные типы и размеры типов, разные соглашения о вызовах, разный порядок байт,
разные форматы исполняемых файлов... Да много чего еще.
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru