Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/72: Рейтинг темы: голосов - 72, средняя оценка - 4.92
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445

Создание DLL

22.08.2010, 20:39. Показов 13657. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите создать DLL в C++ Builder 6 или Dev-CPP которая будет полностью анологична следующей написаной на Delphi 7:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
library MyDLL;
 
{$R *.res}
 
function f: integer; stdcall; export;
begin
  Result:=10;
end;
 
exports f;
 
begin
 
end.
Добавлено через 2 минуты
Dynamic-Link Library: Теория + Практика, читал но непомогло!

Добавлено через 3 часа 5 минут
Или подскажите какинебудь книги по созданию DLL в C++ Builder 6
А то ни как неполучается создать DLL!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.08.2010, 20:39
Ответы с готовыми решениями:

Создание DLL
Windows XP 32, C++ Builder4. Система (комплекс программ) имеет тенденцию к расширению за счет подключения новых модулей.В какой-то...

Создание DLL
Здравствуйте, помогите пожалуйста разобраться- не могу понять в чём ошибка. Создаю C++ Builder - DLL ...

Создание формы в dll
Добрый день! Задача простая: вызвать форму из dll (дальше на ней нужно будет делать много интересных штук,но с этим я разберусь) ...

11
 Аватар для Flyrk
13 / 13 / 1
Регистрация: 19.08.2010
Сообщений: 47
22.08.2010, 20:52
уважаемый Mencey попробуйте в C++ Builder'e нажать F1 - для вызова справки. мне в свае время это очень помогло.
0
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
22.08.2010, 21:20  [ТС]
Flyrk, Про справки я знаю но у меня проблемы с Английским чем я сейчас и занимаюсь(учу Английский), а вы случайно не знаете где можно скачать русскую версию справок по CBuilder 6 (желательно бесплатно).
0
 Аватар для Flyrk
13 / 13 / 1
Регистрация: 19.08.2010
Сообщений: 47
23.08.2010, 14:59
ладно, раз уж ты нажал на спасибо, я обязан тебе помочь. сейчас буду искать справки. как найду выложу.

Добавлено через 1 минуту
вот, http://www.firststeps.ru/cbuilder/r.php?91
удачи.
2
37 / 37 / 5
Регистрация: 12.02.2010
Сообщений: 239
23.08.2010, 21:47
Цитата Сообщение от Mencey Посмотреть сообщение
следующей написаной на Delphi 7
Знал бы Delphi, тогда бы подсказал!!!!
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
24.08.2010, 00:13
Цитата Сообщение от Mencey Посмотреть сообщение
Dynamic-Link Library: Теория + Практика, читал но непомогло!
А что в вашем понимании означает фраза "читал - не помогло"?
По-моему, там описано всё, что вам нужно.
По условию вашей задачи вам необходимо поместить в библиотечный модуль функцию, которая ничего не делает, кроме того, что возвращает целочисленное значение типа int, постоянно равное 10-ти...
В статье я приводил пример на вычисление суммы по двум переданным параметрам... неужели сложно переделать?

Смотрим пример из статьи и изменяем его...

Заголовочный файл:
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
#ifndef __TESTDLL_H
#define __TESTDLL_H
 
/*
символ TESTDLL_EXPORTS по умолчанию определен в Вашем проекте (см. Project Options -> С/С++ -> General->Preprocessor Definitions).
При этом все экспортируемые идентификаторы предваряются символом DLL_SPEC.
В случае определения TESTDLL_EXPORTS в проекте DLL_SPEC определяется как экспортируемый объект; в случае же отсутствия такого определения мы получим импортируемый объект.
Таким образом, один и тот же заголовочный файл может быть использован и в DLL-проекте, и в проекте, который будет использовать данную DLL! Без каких-либо изменений.
*/
 
#ifdef TESTDLL_EXPORTS
#define DLL_SPEC extern "C" __declspec(dllexport)
 
#else
#define DLL_SPEC extern "C" __declspec(dllimport)
#endif // TESTDLL_EXPORTS
 
/*
Каждый экспортируемый идентификатор предваряем __declspec(dllexport).
Эта директива позволяет линкеру определить, что данный идентификатор следует экспортировать из DLL. При этом создается специальный lib-файл, который содержит все экспортируемые идентификаторы из модуля. Также экспортируемые объекты заносятся в раздел экспорта DLL.
*/
 
DLL_SPEC int f(void);
 
#endif // __TESTDLL_H
Файл кода (код стандартного шаблона DLL исключён):
C++
1
2
3
4
5
6
7
#include "TestDLL.h" // создание этого заголовочного файла будет описано ниже
//---------------------------------------------------------------------------
int f(void)
{
  return 10;
}
//---------------------------------------------------------------------------
Как вы видите, изменить нужно было только прототип функции и её описание.
Остальное осталось таким же, как в статье.
Теперь выбирайте один из описанных вариантов подключения библиотеки и пользуйтесь.

Не по теме:

Можете также добавить __stdcall к функции ... хотя для таких функций не вижу необходимости использовать ни данный тип преобразования вызова, ни DLL в целом...

0
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
24.08.2010, 11:24  [ТС]
Цитата Сообщение от MikeSoft Посмотреть сообщение
Можете также добавить __stdcall к функции ... хотя для таких функций не вижу необходимости использовать ни данный тип преобразования вызова, ни DLL в целом...
Я просто пишу плагин для проги и там должна быть одна экспортируемая функция с __stdcall. На Delphi напсал, но т.к. я Delphi знаю плохо то написать плагин не смог.

MikeSoft, в сатетье всё написано понятно, я написал всё как в статье кое-что подправил, но у меня программа ругается на DLL(говорит что DLL не к это программе).

Сейчас изменил кое-что и ругаться перестали, но я не знаю правильно ли написал:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <windows.h>
 
extern "C" int __stdcall __declspec(dllexport) f();
 
int __stdcall f()
{
  return 10;
}
 
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
  return 1;
}
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
24.08.2010, 14:00
Mencey, тогда уже так:
C++
1
2
3
4
extern "C" type __declspec(dllexport) __stdcall name(parameters)
{
  ...
}
0
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
24.08.2010, 18:44  [ТС]
А вот так можно:
C++
1
extern "C" type __export __stdcall name(parameters)
кстати чем отличается _stdcall от __stdcall и _export от __export (т.е. когда ставиш два или один '_'(знак подчёркивания)) так и так слова выделяются?
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
25.08.2010, 12:04
Mencey, теоретически - разницы никакой: Embarcadero Docs

Двойное подчёркивание - признак использования С++.
0
 Аватар для Mencey
155 / 102 / 12
Регистрация: 22.07.2010
Сообщений: 445
25.08.2010, 12:22  [ТС]
Всем спасибо всё понял всё работает!
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.06.2011, 17:09
Создаю DLL, подключаю ее проекту при компиляции окно проекта просто не появляется.(С++ Bulder 6,создаю по примеру из книги Архангельского).При исключении вызова функции DLL, из самого проекта все нормально.
Кто подскажет в чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.06.2011, 17:09
Помогаю со студенческими работами здесь

Создание потока в DLL
Ребят, дайте ссылку на тему, где можно про это почитать. Через поиск в разделе не нашел...

Создание формы в dll
Добрый день.Мне необходимо загрузить из dll функцию, во время выполнения которой долдна появиться форма с progressbaroм, который должен...

Создание и использование dll
Всем доброго времени суток! Среда выполнения Borland Builder проблема в вызове метода класса зашитого в dll //содержание dll ...

Создание DLL в BDS2006
Создаю DLL по примеру, как написано у Архангельского - не работает. А его проект с диска - работает нормально (хотя тексты файлов...

Создание классов в DLL
уже розобрался..Я все норм делал,ток у меня билдер 2007, а он создает пеапки дебаг и релиз и туда помещает .ехе , а .ехе не запускается...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru