Как определить, вызывается ли функция DLL из VB6 exe? - PullRequest
1 голос
/ 17 мая 2010

У меня есть старое приложение VB6, и я не уверен, какой код использовался для его компиляции. Одна ревизия источника делает вызов Sleep в kernel32.dll.

Есть ли способ узнать, вызывает ли exe специфическую функцию в DLL? Я вижу, что kernel32.dll связан с помощью инструмента «Зависимость ходунки», но это не говорит мне, что конкретная функция вызывается из exe.

Ответы [ 3 ]

2 голосов
/ 17 мая 2010

Вы можете использовать Process Explorer , чтобы увидеть, какие функции DLL вызываются exe во время выполнения.

1 голос
/ 17 мая 2010

Если вы можете запустить программу в отладчике, вы всегда можете установить точку останова по адресу функции interrest. Конечно, тогда вы должны инициировать фактический вызов импортируемой функции.

Вы также можете попытаться загрузить программу в дизассемблере и посмотреть, есть ли какие-либо ссылки на нее, но тогда вы не поймаете какие-либо динамически загруженные функции. Один из инструментов, на который стоит обратить внимание, - PE Explorer . Я не уверен, работает ли это с программами VB6, хотя, поскольку код импорта DLL, вероятно, загружает функции динамически (используя GetProcAddress и т. П.).

0 голосов
/ 17 мая 2010

В Dependency Walker вы можете использовать команду профиля.
Это позволяет вам отслеживать и видеть, какие методы вызываются.

...