Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 076
от 10.09.2002, 12:30

Администратор:
Имя: Коробов Н.А.
URL: Информационный ресурс
ICQ: 365124
Украина, Днепропетровск
О рассылке:
Задано вопросов: 222
Отправлено ответов: 466
Активность: 209.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

E$h@
Статус: Доверительный
Общий рейтинг: 128.4
[Подробней >>]
Yuri Gordienko
Статус: Доверительный
Общий рейтинг: 132.75
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 131.37
URL: Моя страничка
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 221. Добрый день(вечер, утро)! Вопросы сообственно: 1.Написал DLL(использую VC++6.0), экспортирующую неск... (ответов: 3)

Вопросов: 1, ответов: 3


 Вопрос № 221

Добрый день(вечер, утро)!
Вопросы сообственно:
1.Написал DLL(использую VC++6.0), экспортирующую несколько функций. Как теперь узнать, какие функции содержаться в DLL? По идее, их описание должно находиться в DEF файле, но там только содержаться только их названия и номера. А как же параметры? Если h файлы с DLL не распространяются, то как узнают типы параметров и тип возвращаемого значения???(DLL подключается в программе динамически)
2.У Borland'a была утилита implib для создания библиотеки импорта для DLL. В MSDN тоже про нее расказывается. А вот найти ее в Visual Studio не смог. Не подскажите, где она там запрятана или что вместо нее используется???
Заранее спасибо.



Вопрос отправлен: 07.09.2002, 12:22
Отправитель: Matrixman (natrixman@htbs.nnov.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает E$h@

Добрый день, Matrixman!
Так есле же ты сам написал ДЛЛ то должен знать какие параметры у ф-ций :). Вобще наверно это лучше задокументировать (а так кажется не узнаеш никак) если ты к примеру пишеш какой-нить API, а если не АПИ, то нахрена тебе кому-то давать знать как устроена твоя программа :) (ты же всё-таки не в Линуксе :).
2) Ну если в MSDN ссылаются на Борландскую утилитку, то наверно у Microsoft такой нету (я пользуюсь средствами Borland). Так што поищи на диске с С++ Билдер :)


Ответ отправлен: 07.09.2002, 13:43
Отправитель: E$h@


Отвечает Yuri Gordienko

Доброе время суток, Matrixman!
По первому вопросу:
Ну, dll вообще-то обычно распространяется с конечными программами, а не как библиотека разработки. Если как библиотека разработки, то, как правило, присутствует какой-то *.lib файл, который самостоятельно производит загрузку *.dll и экспорт из неё функций, и, соответственно, *.h файлы (или текстовое описалово) всегда присутствуют. Если ты сам пишешь dll, то и параметры ты знаешь.
По второму вопросу:
С борландовским implib не работал, поэтому скажу про VC.
У них есть утилитка DUMPBIN.EXE. Так вот, запускаешь её типа так:
dumpbin.exe /exports test.dll > test.log
получаешь файл test.log с описаловом функций библиотеки test.dll. Если повезло, то в нем будут имена функций с параметрами, - вызываешь виндовую функцию UnDecorateSymbolName с ПОЛНЫМ названием функции из файла как параметр и получаешь реальное имя с реальными параметрами.
Удачи



Ответ отправлен: 07.09.2002, 13:42
Отправитель: Yuri Gordienko


Отвечает Pablo

Приветствую Вас, Matrixman!
Ну ты можешь люьбой прогой которая обрабатывает DLLки посмотреть кай ф-ции находятся в твоей DLL, например, есть такая прога ShowDep вот с ее помощью и могешь помпотреть какии ф-ции содержаться в твоей DLL.
Вообще если ты создавал функции с декорирование c++ то они имеют очень непохожий формат на те, которые ты объявлял в прорамме!))) Чтоб они были похожими нада объявлять их в стиле "c" как extern "C".

Ответ отправлен: 08.09.2002, 11:16
Отправитель: Pablo



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (41)
C / C++ (29)
Perl (9)
Delphi (14)
Pascal (25)
Basic / VBA (10)
Java / JavaScript (13)
PHP (9)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (38)
Windows NT/2000/XP (28)
"Железо" (37)
Поиск информации (12)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (17)
Юристу
Гражданское право (9)
Семейное право (5)
Трудовое право (7)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное