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

Создание *.dll: для чего нужен компилятору параметр -DBUILD_DLL? (использую MinGW) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлом типа fstream http://www.cyberforum.ru/cpp-beginners/thread1091503.html
Пишем несложный код: fstream file("Test.txt",ios_base::in|ios_base::app); int cnt = 0; while (cnt < 3) { cerr << char(file.get()); cnt++; }
C++ Эмулятор. На С, С++ Здравствуйте уважаемые читатели форума! У меня такой вопрос: (СРАЗУ ПРЕДУПРЕЖДАЮ Я НЕ ОЧЕНЬ ХОРОШО РАЗБИРАЮСЬ ПОКА В ЭТОМ ТАК ЧТО ОЧЕНЬ МНОГОЕ ИЗ МОИХ СЛОВ МОЖЕТ БЫТЬ ЖУТКИМ ....) В качестве... http://www.cyberforum.ru/cpp-beginners/thread1091494.html
C++ Использование стороннего CSP. Шифрование в программе
Снова обращаюсь к гуру программирования. Возникла ещё одна проблема, причём уже давно. Некоторые пользователи жалуются на невозможность использования программы по причине НЕсохранения их данных в...
Я создаю утечки памяти ! C++
Нет, я не хочу похвастаться этим. Я любитель использовать быстрые решение для того чтобы реализовать алгоритм или проверить "чтобы работало", но как известно нет ничего более вечного, чем...
C++ Каким образом идет поиск слов в кавычках? http://www.cyberforum.ru/cpp-beginners/thread1091483.html
Доброго времени суток! Вот вся программа #include <fstream> #include <iostream> #include <string> int main() { std::ofstream ofs("test.txt");
C++ Умножить матрицу 10х10 на вектор из 10 элементов дана матрица:10*10.умножить ее на вектор 10.помогите пожалуйста...очень нужно подробнее

Показать сообщение отдельно
DrOffset
7154 / 4295 / 969
Регистрация: 30.01.2014
Сообщений: 7,099
16.02.2014, 15:05
Цитата Сообщение от kravam Посмотреть сообщение
Второй абзац, честно говоря, не понял. Нельзя ли какой-нибудь маленький примерчик ПОЛЕЗНОГО применения __declspec(dllimport)?
Тут подробно написано.

Цитата Сообщение от kravam Посмотреть сообщение
а потом вернуться к ключу BUILD_DLL.
Да BUILD_DLL не ключ, а макрос. -D - это ключ. Вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifdef LIBNAME_USING_WIN32
#   ifdef LIBNAME_USING_CXX_GCC
#       define LIBNAME_EXPORT_DIRECTIVE __attribute__ ((__dllexport__))
#       define LIBNAME_IMPORT_DIRECTIVE __attribute__ ((__dllimport__))
#   elif defined(LIBNAME_USING_CXX_MSVC)
#       define LIBNAME_EXPORT_DIRECTIVE __declspec(dllexport)
#       define LIBNAME_IMPORT_DIRECTIVE __declspec(dllimport)
#   endif
#else
#   ifdef LIBNAME_USING_GCC4
#       define LIBNAME_EXPORT_DIRECTIVE __attribute__ ((visibility("default")))
#       define LIBNAME_IMPORT_DIRECTIVE __attribute__ ((visibility("default")))
#   elif defined(LIBNAME_USING_CXX_GCC)
#       define LIBNAME_EXPORT_DIRECTIVE
#       define LIBNAME_IMPORT_DIRECTIVE
#   endif
#endif
 
#ifdef LIBNAME_BUILD_DLL
#   define LIBNAME_API  LIBNAME_EXPORT_DIRECTIVE
#else
#   define LIBNAME_API  LIBNAME_IMPORT_DIRECTIVE
#endif
Определяя его, мы включаем экспорт функций помеченных LIBNAME_API (где LIBNAME - имя нашей библиотеки). В случае же когда приложение начинает использовать заголовочные файлы нашей библиотеки - этот макрос не определяется и используется по умолчанию импорт.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru