Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Работа с файлом типа fstream https://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++ Эмулятор. На С, С++
Здравствуйте уважаемые читатели форума! У меня такой вопрос: (СРАЗУ ПРЕДУПРЕЖДАЮ Я НЕ ОЧЕНЬ ХОРОШО РАЗБИРАЮСЬ ПОКА В ЭТОМ ТАК ЧТО ОЧЕНЬ МНОГОЕ ИЗ МОИХ СЛОВ МОЖЕТ БЫТЬ ЖУТКИМ ....) В качестве зачетного задания преподаватель задал написать эмулятор процессора, (ну вначале придумать архитектуру, и написать эмулятор этого). Шаблон он дал, там был примитивный ассемблер, написанный на перле. И на С...
C++ Использование стороннего CSP. Шифрование в программе Снова обращаюсь к гуру программирования. Возникла ещё одна проблема, причём уже давно. Некоторые пользователи жалуются на невозможность использования программы по причине НЕсохранения их данных в форме ввода. Хотя автосохранение стоит. На данный момент в программе используется виндовый CryptAcquireContext для шифрования введённых данных (логин и пароль для доступа к персональному кабинету... https://www.cyberforum.ru/ cpp-beginners/ thread1091490.html C++ Я создаю утечки памяти ! https://www.cyberforum.ru/ cpp-beginners/ thread1091487.html
Нет, я не хочу похвастаться этим. Я любитель использовать быстрые решение для того чтобы реализовать алгоритм или проверить "чтобы работало", но как известно нет ничего более вечного, чем временное... ... время идет, а код остается :wall: Образец:HTEXTURE tex; tex = hge->Load_Texture("texture.png"); hgeSprite* sprite = new hgeSprite(tex,0,0,50,50); sprite->Render(); //Play delete sprite;...
Каким образом идет поиск слов в кавычках? C++
Доброго времени суток! Вот вся программа #include <fstream> #include <iostream> #include <string> int main() { std::ofstream ofs("test.txt");
C++ Умножить матрицу 10х10 на вектор из 10 элементов https://www.cyberforum.ru/ cpp-beginners/ thread1091477.html
дана матрица:10*10.умножить ее на вектор 10.помогите пожалуйста...очень нужно
C++ Функция для работы с файлом https://www.cyberforum.ru/ cpp-beginners/ thread1091475.html
У меня есть внешняя функция записанная в моей библиотеке, в эту функцию передаются 2 значения: 1 - это начало массива, в котором записано имя файла, 2 - длинна имени файла моя задача посчитать количество строк в файле, проблема в том, что имя файла переданное переменной не распознается "ifstream", у меня возникает ситуация такая что имя файла в ifstream становится равно = 0 #include...
C++ Напишите функцию которая находит корни квадратного уравнения ax^2+bx+c=0
Напишите функцию которая находит корни квадратного уравнения ax^2+bx+c=0 и записывает результат в переменные типа double, передаваемые по ссылке. В случае отсутствия корней или ввода неправильных данных (a=0) функция выводит на экран соответствующие сообщения об этом. Так же функция выводит сообщение, если корни уравнения одинаковы. #include <iostream> #include<cmath> using namespace std; ...
C++ Как в visual studio 10 сделать кнопку на форме? сделал форму в visual studio 10.а как сделать пару кнопок? https://www.cyberforum.ru/ cpp-beginners/ thread1091458.html C++ Нужно сделать что бы давало рандомно числа и нужно написать ответ В командной строке. Тоесть примерно так: Запускаешь программу, показывает числа что выбрались рандомно : 15*3=? После этого пользователю нужно написать ответ сколько будет 15*3 и если правильно то напишет правильно если нет то не правильно https://www.cyberforum.ru/ cpp-beginners/ thread1091452.html
Подскажите правильно ли реализована программа решения уравнения? C++
необходимо решить задачу такую: \frac{du}{dt}=u(1-u-rv)+\frac{{d}^{2}u}{{dt}^{2}}\frac{dv}{dt}=-buv+\frac{{d}^{2}v}{{dt}^{2}} вот код. использую явную схему. скажите правильно ли это? #include <iostream> #include <cmath> #include <fstream> #define a -30.0 //левая граница отрезка #define b 30.0 //правая граница отрезка
C++ Сгенерировать матрицу 100х100 пожалуйста помогите.Как сделать матрицу к примеру:100*100 ,чтоб ее не нужно было вводить с клавиатуры, рандом с случайными числами не подходит, числа должны идти от 0. https://www.cyberforum.ru/ cpp-beginners/ thread1091430.html
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
17.02.2014, 20:40  [ТС] 0

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

17.02.2014, 20:40. Показов 8350. Ответов 46
Метки (Все метки)

Ответ

На счёт __declspec(dllimport)- небольшой тык скыть эксперимент с отладчиком, показал, что всё так.

Не по теме:

Кстати, что характерно, все экзешники, в которых я ковырялся в своей жизни, были написаны без этого модификатора- оно и понятно, ведь предполагается, что экзешники могут быть запущены на разных осях, с разными адресами API-функций и последнее слово в нахождении их адреса за загрузчиком.

То есть в

1) связке экзешник + системная dll-ка модификатор __declspec(dllimport) должен отсутсвовать. Где же он есть? Ну, наверное, в

2)связке экзешник+ dll-ка, поставляемая вместе с ним. ТО есть написан экзешник, к нему паровозом идут dll-ка(и), предполагается что эта связка неизменна, поэтому неизменен и адрес функции, вызываемой из этого экзешника, не фиг зря тратить загрузчицкое время на правку адреса.

Это всё понятно. Но мы-то говорим об __declspec(dllimport) в исходинке dll-ки! Получается связка такая:

3) dll-ка с __declspec(dllimport)+ dll-ка (источник функции)

Ну я таких конструкций навороченных с двумя dll-ками не писал ещё, ну ладно, всё это вполне может быть.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=


А теперь, когда мы так успешно выяснили, зачем всё это нужно по отдельности, возвращаемся к нашему вопросу- на фига такой вот монстр?

C++
1
2
3
4
5
6
7
#ifdef BUILD_DLL
   // the dll exports
   #define EXPORT __declspec(dllexport)
#else
   // the exe imports
   #define EXPORT __declspec(dllimport)
#endif
Мне ситуация видится просто: пишем dll-ку, в ней сколько-то импортируемых функций из других dll-ок, сколоько-то экспортируемых и сколько-то ни тех ни других, для внутреннего, тык скыть, потребления. Так вот, прототип каждой из импортируемых функций мы объявляем так:

C++
1
2
3
4
extern "C" __declspec(dllimport) void functsia_imp_0 ();
extern "C" __declspec(dllimport) void functsia_imp_1 ();
extern "C" __declspec(dllimport) void functsia_imp_2 ();
...
А экспортируемые пишем так:
C++
1
2
3
4
extern "C" __declspec(dllexport) void functsia_exp_0 () {};
extern "C" __declspec(dllexport) void functsia_exp_1 () {};
extern "C" __declspec(dllexport) void functsia_exp_2 () {};
extern "C" __declspec(dllexport) void functsia_exp_3 () {};
Или даже так, если уж нам неймётся с макросами:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#define EXPORT __declspec(dllexport)
#define IMPORT __declspec(dllimport)
////...
 
extern "C" IMPORT void functsia_imp_0 ();
extern "C" IMPORT void functsia_imp_1 ();
extern "C" IMPORT void functsia_imp_2 ();
 
//...
extern "C" EXPORT void functsia_exp_0 () {};
extern "C" EXPORT void functsia_exp_1 () {};
extern "C" EXPORT void functsia_exp_2 () {};
extern "C" EXPORT void functsia_exp_3 () {};
Но где тут может быть полезен вышеприведённый блок макроопределений? Ума не приложу. Уславливаемся, что в DLL-ке у нас определены, например 4 экмпортируемые функции и используются 3 импортируемые. (наверное, последний абзац последнего ответа был как раз про это, но уж больно он громоздкий, извините.)

Вернуться к обсуждению:
Создание *.dll: для чего нужен компилятору параметр -DBUILD_DLL? (использую MinGW) C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2014, 20:40
Готовые ответы и решения:

AddItem и TObject. Для чего нужен второй параметр в приведенном коде
Непонял для чего нужен второй параметр и как его использовать?...

Подскажите для чего нужен WdfCoInstallerXXXX.dll
Коллеги, приветствую! Пишу мини-фильтр клавиатуры. При создание Empty WDF проекта драйвера, в...

Создание и использование dll- Для чего dllimport?
Всем доброго времени суток Вот пытаюсь разобраться в создании и использовании dll. По данной...

Нужно найти путь к компилятору MinGW в QT Creator
Всем привет,установил недавно Qt creator,но сразу же появилась проблема - прога не видит мой...

46
17.02.2014, 20:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2014, 20:40
Помогаю со студенческими работами здесь

Нужен glaux для mingw
glaux for mingw в гугле ничё не даёт ++++++++++++++++++++++++++++++++++ Теперь вот ещё, у...

Подлючение библиотеки sfml 2.0 sjlj к дефолтному компилятору mingw sjlj code::blocks 13.12 x32
Напишите, что неверно. 1. Новый пустой проект, потому что в code::blocks 13.12 не функционирует...

Для чего нужен Seed() и для чего его override?
Привет, ребята. Прочитал много разных статей про Seed(). И так и не могу понять зачем он нужен на...

MinGW - скомпилированная программа требует наличия libstdc++-6.dll и libgcc_s_seh-1.dll
Добрый день. При компиляции с помощью Visual Studio программа не требует никаких dll, можно ли в...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru