Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 2 / 0
Регистрация: 05.12.2015
Сообщений: 193

Как создавать и применять DLL?

14.12.2015, 13:40. Показов 1207. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил изучить как создаются dll и как их использовать в коде.
Привожу линк на пример, которым я пользовался в более упрощенном варианте:



PS Не получилось передать линк на пример. Чтобы его найти надо поискать в гугле:
"Кто умеет создавать dll библиотеки в Dev C++, вопрос к вам."


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


1. ENCODER.h
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef _ENCODER_H_
#define _ENCODER_H_
 
#if BUILDING_DLL
#define DLLIMPORT __declspec(dllexport)
#else
#define DLLIMPORT __declspec(dllimport)
#endif
 
 
DLLIMPORT int Number_Dll;
 
 
#endif
2. ENCODER.c
C
1
2
3
4
5
6
/* Replace "dll.h" with the name of your header */
#include "ENCODER.h"
#include <windows.h>
 
 
DLLIMPORT int Number_Dll;
3. ENCODER_RUN.cc
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#include "ENCODER.h"
//#include "ENCODER.dll"
 
 
int main() {
 
//   printf("DLL Const value = %d\n", Number_Dll);
   Number_Dll = 13;
 
    return 0;
 
} // int main (int Hours_To_Count) {
Dll was created successfully, but I don't know how to use it.
During compilation of the <ENCODER_RUN.cc> I received an Error and don't know what is wrong.

Dll был успешно создан, но при компилировании <ENCODER_RUN.cc> в Dev-C++ возникла ошибка:


...\TEST_DLL\collect2.exe [Error] ld returned 1 exit status

Пожалуйста, подскажите что сделано неверно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.12.2015, 13:40
Ответы с готовыми решениями:

Как создавать dll?
как создавать dll по типу //инклуды #ifdef __cplusplus extern &quot;C&quot; { #endif // константы

Создавать dll или нет?
Привет, Уважаемые Мастера своего дела! Вопрос в следующем: у меня программа, в которой около 10 блоков (unit'ы с файлами cpp и h)....

EJB: когда применять и не применять
Когда правильно вводить EJB компоненты? Все-таки их использование связано с определенными затратами на конфигурирование и всю эту возню. А...

2
651 / 404 / 76
Регистрация: 21.09.2008
Сообщений: 1,396
21.12.2015, 22:05
Приложу пример реально работающей с DLL полезной программы. Это моё переложение на Си исходников с Паскаля программы Snoop2 (Опечатка) версии 2.711, автором которой является Евгений Голомин.
Собиралась в Win32 компилятором tdm-gcc версий 4.8 и 5.1.0 без проблем в командной строке в каталоге программы:
mingw32-make -f Makefile.win
В каталоге IniFile аналогично собирается плагин к нему (IniFile.dll).
Пользуйтесь свободно.
1
651 / 404 / 76
Регистрация: 21.09.2008
Сообщений: 1,396
21.12.2015, 22:12
Вложение не прикрепилось в первый раз.
Вложения
Тип файла: zip snoop2c.zip (53.7 Кб, 12 просмотров)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2015, 22:12
Помогаю со студенческими работами здесь

Как строится ветвление, как читать данные, введённые с клавиатуры, как их потом применять
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Мне 11 лет, и я учусь программировать на С++. Расскажите мне о...

Как рационально применять if
когда идет несколько условий подряд зависимых от первого условия (если первое исполнится другие не должны выполняться) каком случае меньше...

Как применять функции?
Вот я делал задание программа работаает но сделать это надо с использованием функции то есть я понял что это такое но как это сделать. Я...

Удалённые хуки. Когда для них нужно создавать *.dll, а когда необязательно?
Друзья! В туториалах Iczelion'а сказано просто: То тут то там вижу утверждения, что *.dll создавать необязательно, типа и так...

Как применять метод из строки?
Здравствуйте. Начинаю изучать javascript. У меня есть строки, например, 'background' и '#000'. Мне надо это превратить в: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru