![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
Вопрос появился к гуру
Создал длл и все хорошо , все работает , только непонятка одна есть, в экспортах моей длл все мои функции по два раза перечислины, с одинаковыми точками входа, только в названии в конце добавляеться @4 или @8 .... зачем это нуно и как от этого избавиться? и еще как в длл( или ехе) добавить инфу о версии , владельце и т.п.? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| oper54 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 13.5.2005 Репутация: нет Всего: 1 |
Вопрос вовсе не к гуру.
Про @4 или @8 - ты у своего компилятора спроси... А версия добавляеться в ресурсы. |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
oper54
Не только... для своих плагинов можно вводить структуры данных, содержащих версию и хар-ки плагина. |
|||
|
||||
| oper54 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 13.5.2005 Репутация: нет Всего: 1 |
En_t_end
Это интересно. Если можно подробнее... |
|||
|
||||
| Romikgy |
|
||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
Как спросить у компилятора? и какие ресурсы необходимо задействовать? Добавлено @ 13:59
Угу ... поточнее плз -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||||
|
|||||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Romikgy
А чем не устраивает экспортировать что-то типа struct Test{char info_plug[MAX_INFO]; unsigned int unique; unsigned int version;}; Далее типизируем эту структуру в TEST. Потом и функцию какую-нибудь делаем экспортируемой типа TEST GetPlugInfo(); - в ней заполняем нужные поля структуры. И в самой программе после проецирования плагина сверяем допустимые значения своей структуры и структуры возвращаемой GetPlugInfo... если версия не устраивает, то делаем FreeLibrary(/**/) Это сообщение отредактировал(а) En_t_end - 24.6.2005, 18:09 |
|||
|
||||
| rsm |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
Чтобы в экспортах не было всяких закорючек и прочих циферок, юзай объявления вида:
Вывод инфы о плагине можно организовать например так:
|
||||||||
|
|||||||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
То есть такая форма :
extern "C" __declspec(dllexport) BOOL SomeFunction(DWORD dwAddress, LPBYTE lpbData); избавит от добавления дополнительных функций со знаками @???? И второе вы меня не совсем правильно поняли, как выдать инфу о плагине в МОЮ прогу , я смогу придумать, а как выдать инфу , если на моей длл или ехе в винде правой кнопкой мыши надавили и попросили показать свойство, и там (у некоторых длл) есть пункт версия, я хочу туда ифну вывести!!! Так надеюсь яснее ?! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Romikgy
Ну тыды правда... только в ресурсах плагина создавать INFO и там писать, что нужно... хотя по мне - это лишнее расходование дискового простанства. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
А по точнее ... или подскажи где почитать??? плз... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| oper54 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 13.5.2005 Репутация: нет Всего: 1 |
Romikgy, в VC так - project -> add to project -> new -> resource script
в окошке workspace появится закладка ResourceView, insert -> version |
|||
|
||||
| rsm |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
Избавит, проверено для компилятора из VC++ 2003.
Мой код ты похоже вообще не анализировал. Функция ShowPlugInfo будет у тебя в программе и ее первый и единственный аргумент - хендл окна программы. Идентификаторы контролов у тебя есть (раз пишешь на голимом WinApi), хендл окна тоже есть. Так что мешает написать например так:
|
||||||
|
|||||||
| Romikgy |
|
||||||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
Сибо ОГРОМНОЕ нашел Добавлено @ 14:17
1. Проверю сибо 2. нечего так нервничать, и это не я плохо читаю сообщения , а ВЫ т.к. я написал что знаю, как выдать инфу в мое приложение , мне необходимо было выдавать для оболочки винды!!! но все равно спасибо -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||||||||
|
|||||||||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
С выводом инфы все окей
Нашел такой параметр (как я понимаю компилятора) --add-stdcall-alias , если его поставить появлю нормальные имена и с @ , если его убрать то нормальные имена пропадают а с кракозяброй остаются -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
Скорее всего у тебя в проекте мои объявления функций перекрываются объявлениями в *.def. Удали из проекта все файлы *.def и подчисти объявления всех экспортируемых функций в заголовках *.h (или исходниках *.cpp - куда ты их поместил?), исправив их так, как я написал. Должно сработать, см. в аттаче пример. Это сообщение отредактировал(а) rsm - 29.6.2005, 13:47 Присоединённый файл ( Кол-во скачиваний: 7 )
dllexports.zip 2,55 Kb |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |