Тема: Объявить DLL

Есть DLL. Как обьявить ее, если она недокументирована.

Re: Объявить DLL

> Dimas
Что значит - объявить DLL? Объявить ее функции?
Недокументирована - значит неизвестна программисту?
В таком случае - никак.
Или исследовать ее хакерским дизассемблированием...

Re: Объявить DLL

regsvr32 ?

Re: Объявить DLL

DLL работает в программе. Но программа не устраивает по некоторым параметрам. Хочу написать свою на основе этих DLL-ок. В VBA не обьявляется. Надо как API обьявить.

Re: Объявить DLL

Пишешь Active X dll и подгружаешь ее в VBA

Re: Объявить DLL

> Dimas

> Dimas
Итак, что-то начинает проясняться. DLL не документирована просто потому, что ты этого не сделал. А сама программа тебе известна.
Для вызова ее функций тебе надо создать объект класса MyProject (имя проекта DLL). Естественно, в DLL включен класс MyClass.

Dim vb As Object
Set vb = CreateObject("MyProject.MyClass")

После этого запускаешь  нужную тебе в DLL процедуру, например:

Call vb.StartVB(ThisDrawing)

Re: Объявить DLL

Я не знаю именфункций в dll, а самое главное аргументов функций!!! Вот как узнать это.

Re: Объявить DLL

DLL написана на С++

Re: Объявить DLL

Через References она на подключается.

Re: Объявить DLL

значит она не ActiveX...

Re: Объявить DLL

> Dimas
Имена функций, а иногда и список параметров в dll можно посмотреть при помощи dumpbin.exe (есть во всех версиях Microsoft Visual Studio).
Второй вариант - использовать Dependency Walker.
P.S.: Не все виды функций из dll-файла можно вызвать из VBA. Там есть ограничение на передачу параметров (функция в dll должна быть объявлена как stdcall). Поэтому вероятность того, что у тебя получится работать с недокументированной сторонней dll из VBA стремится к нулю. sad