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

Написание и использование DLL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Повторный вызов конструктора?! http://www.cyberforum.ru/cpp-beginners/thread930032.html
Мой небольшой класс class CString { private: char* str; int len; int real_size; public: CString() : len(0), real_size(10) {
C++ Сортировка чисел Всем добрый вечер! Прошу вашего прощения за тупость,и помощи. Мне было поставлено несложное задание на плюсах, но столкнулся с проблемой В написании одного алгоритма - сказывается нехватка знаний.... http://www.cyberforum.ru/cpp-beginners/thread930025.html
C++ Крестики-нолики, проверка
Подскажите пожалуйста как тут реализовать проверку по прямой и по диагонали? #include <iostream> #include <cmath> using namespace std; class Board { protected:
C++ функия NtCreateUserProcess
как использоват эту функцию и какие параметры надо передавать заранее спасибо
C++ Искусственный интелект для игры http://www.cyberforum.ru/cpp-beginners/thread929995.html
Подскажите, есть ли современные игры, для которых можно писать интеллект, или игра которая и состоит в том, что бы писать интеллект. Главное не супер качество графики, и еще что либо, а что бы было...
C++ Объявление переменных в С++ Начал изучение С++ и возник такой вопрос как повторно производить действия с переменными после их объявления? подробнее

Показать сообщение отдельно
Убежденный
Системный программист
Эксперт С++
15545 / 7053 / 1114
Регистрация: 02.05.2013
Сообщений: 11,466
Завершенные тесты: 1
28.07.2013, 22:53
Цитата Сообщение от h3mbr0 Посмотреть сообщение
1) Почему без указания экспорта в DEF-файле, функцию нельзя "подцепить" с помощью GetProcAddress, при том, что она есть в таблице экспорта?
Потому что при экспорте с помощью DEF-файл имя функции попадает в секцию
экспорта без изменений. А при использовании, например, __declspec(dllexport)
имя искажается (декорация имен - name decoration или name mangling).
Смысл искажения имени - поддержка функций с одинаковыми именами, но
разным списком параметров (в С++). Сделать такое через DEF-файл нельзя.

Цитата Сообщение от h3mbr0 Посмотреть сообщение
2) Почему многие используют EXTERN_C(extern "C") перед описанием экспортируемой функцией?
Экспорт в стиле "С". При таком объявлении она экспортируется как C-функция, а
не как функция C++.

Цитата Сообщение от h3mbr0 Посмотреть сообщение
3) Какие функции экспортируются при экспорте всего класса?
Какие укажете, такие и будут экспортироваться.
Можно экспортировать весь класс, а можно только некоторые из методов.

Цитата Сообщение от h3mbr0 Посмотреть сообщение
(У меня экспортируется только одна, что она делает и почему не экспортируются остальные?
Не видя кода, можно только гадать.

Цитата Сообщение от h3mbr0 Посмотреть сообщение
Если добавить в класс string, в экспорт попадет еще несколько непонятных функций, почему?)
Каких, например ?
А вообще, string - это шаблон, он просто так не экспортируется, его еще
нужно инстанциировать.

Цитата Сообщение от h3mbr0 Посмотреть сообщение
4) Как расшифровывается название функции "??4CFoo@@QAEAAV0@ABV0@@Z"(та самая, единственная экспортируемая), и что это за стандарт вызова?
Зависит от компилятора. Между ними нет единого "мнения" по поводу того,
по каким правилам следует декорировать экспортируемые имена.

Цитата Сообщение от h3mbr0 Посмотреть сообщение
5) Как передать из DLL указатель на класс, и использовать его из программы?
С помощью оператора return.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru