| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Поиск функции в .dll библиотеке |
| Автор: MarkHunt 14.6.2013, 19:06 |
| Здравствуйте! Заранее извиняюсь, если я ошибся разделом форума. В общем у меня следующая проблема. У меня есть некая dll библиотека, из которой мне нужно вызвать определённые функции. И мне нужно узнать точные названия этих функций и типы и кол-во параметров, которые нужно передать в них, ну и получить какой-то результат. Так вот, я почитал в интернете, что можно возпользоваться программой http://www.dependencywalker.com/, для того чтобы посмотреть какие функции имеются в dll файле. Но я не понял как пользоваться этой программой, чтобы найти то, что мне нужно. Чтобы немного разобраться в программе, я для примера попробовал посмотреть файл user32.dll. Я точно знаю, что в этой библиотеке есть функция LockWorkStation, которая блокирует комп (её ещё можно вызвать клавишами Win + L). Ну, допустим я хочу найти эту функцию в библиотеке, узнать какие параметры в неё можно передавать, что она будет возвращать мне и т.д. И можно ли вообще сделать такое? В общем когда я открываю user32.dll с помощью этой программы, вижу такую картину. Но что делать дальше? ![]() Может быть есть кто-то, кто встречался с подобым или просто знает что-то из этой области? Заранее, благодарен за помощь. |
| Автор: feodorv 14.6.2013, 22:23 |
| В программе два раза кликните мышкой по интересующей Вас функции, откроется браузер с соответствующей страницей англоязычной MSDN. Там и прочитаете про параметры вызова функции. (Картинки не видно))) |
| Автор: feodorv 14.6.2013, 23:14 | ||
Теперь видно))) На панели справа, где список функций.
Список экспортируемых и импортируемых функций (то есть их имена) доступен в dll. А вот параметры вызова, возвращаемое значение (в C) etc в dll не пишется (да и зачем???). Подобную информацию можно получить из .h файла. |
| Автор: MarkHunt 14.6.2013, 23:46 |
| feodorv, спасибо. Наконец-таки разобрался где эти функции искать У меня ещё небольшой вопрос Обязательно ли прилагается к .dll-файлу .h-файл, или .h-файл может и вовсе отсутствовать? |
| Автор: feodorv 15.6.2013, 01:41 | ||
Нет, не обязательно. Вижу такие варианты:
|
| Автор: MarkHunt 15.6.2013, 08:00 |
| feodorv, большое спасибо, за толковое объяснение |
| Автор: xvr 16.6.2013, 12:01 |
Хочу добавить пару слов к этому варианту. Если библиотека является COM сервером, то в ней может присутствовать Type Library (а может и не присутствовать). Если она есть, то из нее можно извлечь практически полную информацию о классах и методах этой библиотеки. Попробуйте открыть вашу dll как Type Library в утилите OLE-COM Object Viewer (идет в составе MS VS и в MS SDK) |