![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Дана строка, к примеру:
char str[]="kernel32.dll!Beep"; Надо получить адрес, на который ссылается этот символ. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Может, как-то так?
-------------------- ... |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Нет, это как-то делается с помощью dbghelp.dll
Обычно это используется при отладке приложений, например в отладчике NTSD 0:000> ? kernel32 Evaluate expression: 2088763392 = 7c800000 0:000> ? kernel32!Beep Evaluate expression: 2088995411 = 7c838a53 0:000> u kernel32!Beep kernel32!Beep+64 kernel32!Beep: 7c838a53 ... ... 7c838ab4 ... Как он это делает? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Вот не знаю ... Может кто-нибудь еще подскажет...
-------------------- ... |
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: нет Всего: 10 |
Earnest уже подсказала. Делишь строку на подстроки с разделителем '!', первая, как я понял - библиотека, стартовый одрес - это ее HMODULE, следующая строка - имя экспортируемой функции(GetProcAddress) и т.п.
|
|||
|
||||
| 586 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Как такое обработать:
А если приложение отладочное, и в нём есть переменная, например hinst:
Зачем изобретать велосипед, если есть dbghelp.dll ---------------- Я похоже нашел то, что искал -- SymFromAddr и SymFromName из imagehlp.dll |
||||
|
|||||
![]()
|
| Правила форума "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. |