Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651

Создание DLL

22.04.2019, 02:29. Показов 721. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно создать DLL.
DLL.c:
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 #include <windows.h>
 #include "dll.h"
 int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved)
    {
        return TRUE;
    }
 
EXPORT int Random(int min, int max) 
{
    return min + rand() % (max - min);
}
 
EXPORT HBRUSH GenerateColor()
{
    return CreateSolidBrush(RGB(Random(0, 256), (0, 256), (0, 256)));
}
 
EXPORT void PaintFigure(HWND hWnd, int code, int x, int y, LPARAM lParam)
{
    HDC hdc = GetDC(hWnd);  
    SelectObject(hdc, GenerateColor());
    
    if(code == 1)
    {
        Ellipse(hdc, x, y, x + 200, y + 200);   
    }
    else if(code == 2)
    {
        Rectangle(hdc, x, y, LOWORD(lParam), HIWORD(lParam));
    }
    else 
    {
        MoveToEx(hdc, x, y, NULL);
        LineTo(hdc, LOWORD(lParam), HIWORD(lParam));    
    }
    
    ReleaseDC(hWnd, hdc);
}


DLL.h:
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
 #include <windows.h>
 
#ifdef BUILD_DLL
   #define EXPORT __declspec(dllexport)
#else
   #define EXPORT __declspec(dllimport)
#endif
 
EXPORT int Random(int min, int max);
EXPORT HBRUSH GenerateColor();
EXPORT void PaintFigure(HWND hWnd, int code, int x, int y, LPARAM lParam);


Собираю все это так:
gcc -c L4.c
gcc -c -DBUILD_DLL dll.c
gcc -shared dll.c -o dll.dll -lgdi32


После этого ошибки:
1) Неизвестная ссылка на __ipm_Random
2) Неизвестная ссылка на __ipm_GenerateColor

Не пойму, почему эти 2 ф-и не видны
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2019, 02:29
Ответы с готовыми решениями:

Создание DLL
Доброго времени суток. Сейчас решаю лабораторную работу по ОС и имею задание –Реализовать динамическую бибилиотеку вида : char*...

Создание окна из dll
Здравствуйте. Возник вопрос: как создать окно windows, с помощью библиотеки .dll?. Я создал приложение которое создает окно и различные...

Создание и подключение DLL
Добрый вечер, уважаемые форумчане, Прошу помощи в коде создания и подключения DLL. Вот код: header DLL-файла sergei.h: ...

1
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
27.04.2019, 10:46  [ТС]
Проблема была решена: в данном случае не нужно Random и GenerateColor делать экспортируемыми
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2019, 10:46
Помогаю со студенческими работами здесь

Создание потока в DLL
Приветствую всех. В системе стартует DLL (с помощью ключей windows). То что она стартует, проверено выводом окна MessageBox. Теперь я...

Создание потока из DLL
Господа, подкиньте инфы о создании потока из DLL, наверняка кто-то делал подобные дллки, и может поделиться примерами, а то в интернете и...

Создание dll для Hook' ов
подскажите, что нужно прописать в dll файле и основном, чтобы программа считывала нажатия клавиш в блокноте?

Создание Hook-ов без dll
Можно ли создать hook без dll? если да, то скиньте код)

Создание и работа с 2мя dll
Уважаемые форумчане, есть такая задачка &quot;Создайте dll с произвольным набором простых функций - на ваше усмотрение. Создайте еще одну...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru