![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| MarkHunt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 7.3.2013 Репутация: нет Всего: нет |
Здравствуйте! Заранее извиняюсь, если я ошибся разделом форума.
В общем у меня следующая проблема. У меня есть некая dll библиотека, из которой мне нужно вызвать определённые функции. И мне нужно узнать точные названия этих функций и типы и кол-во параметров, которые нужно передать в них, ну и получить какой-то результат. Так вот, я почитал в интернете, что можно возпользоваться программой Dependency Walker, для того чтобы посмотреть какие функции имеются в dll файле. Но я не понял как пользоваться этой программой, чтобы найти то, что мне нужно. Чтобы немного разобраться в программе, я для примера попробовал посмотреть файл user32.dll. Я точно знаю, что в этой библиотеке есть функция LockWorkStation, которая блокирует комп (её ещё можно вызвать клавишами Win + L). Ну, допустим я хочу найти эту функцию в библиотеке, узнать какие параметры в неё можно передавать, что она будет возвращать мне и т.д. И можно ли вообще сделать такое? В общем когда я открываю user32.dll с помощью этой программы, вижу такую картину. Но что делать дальше? ![]() Может быть есть кто-то, кто встречался с подобым или просто знает что-то из этой области? Заранее, благодарен за помощь. Это сообщение отредактировал(а) MarkHunt - 14.6.2013, 22:41 |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
В программе два раза кликните мышкой по интересующей Вас функции, откроется браузер с соответствующей страницей англоязычной MSDN. Там и прочитаете про параметры вызова функции.
(Картинки не видно))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| MarkHunt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 7.3.2013 Репутация: нет Всего: нет |
Странно, конечно. Перезалил на другой хостинг, может сейчас будет видна.
Что-то не нашёл, куда эт так кликать нужно. Добавлено через 9 минут и 48 секунд Кстати, вообще можно ли узнать как-то, какие функции есть в dll-ке и как их использовать, без справочника (с помощью той же программы например)? Или обязательно нужно иметь API к dll файлу? |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Теперь видно))) На панели справа, где список функций.
Список экспортируемых и импортируемых функций (то есть их имена) доступен в dll. А вот параметры вызова, возвращаемое значение (в C) etc в dll не пишется (да и зачем???). Подобную информацию можно получить из .h файла. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| MarkHunt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 7.3.2013 Репутация: нет Всего: нет |
feodorv, спасибо. Наконец-таки разобрался где эти функции искать
У меня ещё небольшой вопрос Обязательно ли прилагается к .dll-файлу .h-файл, или .h-файл может и вовсе отсутствовать? |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Нет, не обязательно. Вижу такие варианты:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| MarkHunt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 7.3.2013 Репутация: нет Всего: нет |
feodorv, большое спасибо, за толковое объяснение
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Хочу добавить пару слов к этому варианту. Если библиотека является COM сервером, то в ней может присутствовать Type Library (а может и не присутствовать). Если она есть, то из нее можно извлечь практически полную информацию о классах и методах этой библиотеки. Попробуйте открыть вашу dll как Type Library в утилите OLE-COM Object Viewer (идет в составе MS VS и в MS SDK) |
|||
|
||||
![]()
|
| Правила форума "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. |