![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
mister2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.5.2010 Репутация: нет Всего: нет |
Объясните русским языком ,что такое файл длл?
Почему при написании самого длл на WINAPI, нужно прописать такое в проекте. plugin.hpp - это что за файл и зачем он нужен? И ещё нужно создавать файл с расширением .def, почему? Это сообщение отредактировал(а) mister2010 - 29.5.2010, 16:40 |
|||
|
||||
Dem_max |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Это подключаемый модуль содержащий функции (исполняемый код), ресурсы (картинки, музыка и др.)
Нет, ничего такого не нужно прописывать, просто нужно создать новый проект и выбрать "Динамическая библиотека"
не обязательно, .def файл нужен если только необходимо переопределить экспортируемое имя функции из DLL, так как все компиляторы создают различное имя экспортируемой функции. Правильные имена функций создают компиляторы от Борланда, компиляторы от майкрософта неправильные, поэтому там используется .def для переопределения имени функции. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||||
|
|||||||
mister2010 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.5.2010 Репутация: нет Всего: нет |
Вот встретил такой код в файле деф, расшифруйте его пожалуйста, что означает этот код в файле с расширением деф.
Подключаемый модуль куда в plugin.hpp или в Far.exe? Правильно ли я понимаю, когда я кидаю в папку портат.программу.Фар где лежит файл Far.exe, кидаю файл длл, при запуске программы Far.exe, файл far.exe вызывает файл plugin.hpp, а plugin.hpp вызывает файл моего длл, например slava.dll ? Это сообщение отредактировал(а) mister2010 - 29.5.2010, 17:46 |
||||
|
|||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
mister2010, вам еще рано заниматься программированием.
Сначала изучите ОС которой пользуетесь. |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
LIBRARY - говорит что это у нас DLL, экспортировать функции может и EXE EXPORTS говорит что мы экспортируем функции GetPluginInfoW=_GetPluginInfo@4 - переопределение имени функций компилятор от MS генерит имена как GetPluginInfo@4, но в итоге нужно получить правильное имя ввиде GetPluginInfo, или можно вообще поменять имя на GetPluginInfoW. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
mister2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.5.2010 Репутация: нет Всего: нет |
1)Что означает первый знак подчёркивания в этом _GetPluginInfo@4 И что означает @4
А во второй строке OpenPluginW=_OpenPlugin@8 @8? Вы говорили что можно так написать GetPluginInfoW=_GetPluginInfoW Так не работает. 2)Файл експорта нужен для переопределения функций описанных в файле plugin.hpp? |
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 3 Всего: 13 |
-------------------- вопросов больше чем ответов |
|||
|
||||
mister2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.5.2010 Репутация: нет Всего: нет |
Ответьте пожалуйста на вопрос последний.
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
mister2010,
исполняемые файлы программы, в том числе и длл строятся из .cpp файлов. .hpp и .h файлы - это части .cpp компилятор их не различает, и не может определить какие функции длл экспортируются, в .hpp они или нет. по этому при сборке длл надо предоставлять отдельный список экспортируемых функций, в .def файле (либо надо помечать функции __declspec(dllexport) в коде) Добавлено через 4 минуты и 14 секунд в записи "_OpenPlugin@8" _ - указывает соглашение вызова, stdcall @8 - число параметров умноженное на 4 вообще-то можно не писать имя = _имя@N а писать в .def файл только имена экспортируемых функций |
|||
|
||||
mister2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.5.2010 Репутация: нет Всего: нет |
Каким образом 10 програм запущенных на компе могут пользоватся одним длл
|
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |