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

Показать сообщение отдельно
Убежденный
Системный программист
Эксперт С++
15511 / 7009 / 1108
Регистрация: 02.05.2013
Сообщений: 11,441
Завершенные тесты: 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 ОС?
Разные типы и размеры типов, разные соглашения о вызовах, разный порядок байт,
разные форматы исполняемых файлов... Да много чего еще.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru