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