Тема: Объявить DLL
Есть DLL. Как обьявить ее, если она недокументирована.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Объявить DLL
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Есть DLL. Как обьявить ее, если она недокументирована.
> Dimas
Что значит - объявить DLL? Объявить ее функции?
Недокументирована - значит неизвестна программисту?
В таком случае - никак.
Или исследовать ее хакерским дизассемблированием...
DLL работает в программе. Но программа не устраивает по некоторым параметрам. Хочу написать свою на основе этих DLL-ок. В VBA не обьявляется. Надо как API обьявить.
> Dimas
> Dimas
Итак, что-то начинает проясняться. DLL не документирована просто потому, что ты этого не сделал. А сама программа тебе известна.
Для вызова ее функций тебе надо создать объект класса MyProject (имя проекта DLL). Естественно, в DLL включен класс MyClass.
Dim vb As Object Set vb = CreateObject("MyProject.MyClass")
После этого запускаешь нужную тебе в DLL процедуру, например:
Call vb.StartVB(ThisDrawing)
Я не знаю именфункций в dll, а самое главное аргументов функций!!! Вот как узнать это.
> Dimas
Имена функций, а иногда и список параметров в dll можно посмотреть при помощи dumpbin.exe (есть во всех версиях Microsoft Visual Studio).
Второй вариант - использовать Dependency Walker.
P.S.: Не все виды функций из dll-файла можно вызвать из VBA. Там есть ограничение на передачу параметров (функция в dll должна быть объявлена как stdcall). Поэтому вероятность того, что у тебя получится работать с недокументированной сторонней dll из VBA стремится к нулю.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Объявить DLL
Форум работает на PunBB, при поддержке Informer Technologies, Inc