Туплю! Запуск процедуры из самодельной библиотеки.
Jeky
Дата: 19.02.2008 14:19:42
Самодельная библиотека. Находится в папке System32. Ссылка на нее установлена, в броузере процедура находящаяся в библиотеке видна.
Не въезжаю как обратиться к этой процедуре?
mds_world
Дата: 19.02.2008 14:25:28
Смотрите в хелпе Declare Statement
Jeky
Дата: 19.02.2008 14:47:30
Так я написал - "туплю", не сообразил, что надо как АПИ-шку объявить.
Объявил, но при попытке обращения вылезает ошибка, что невозможно найти точку входа (ошибка 453) в библиотеке.
Бенедикт
Дата: 19.02.2008 15:08:38
Jeky,
если это ActiveX DLL, и
ссылка на неё в VBA-проекте есть, и
в Object Browser функция видна, то
эта функция является методом класса, значит надо (зависит от его Instancing) явно (Instancing = MultiUse) или неявно (при Instancing = GlobalMultiUse создастся при первом обращении к методу) создать экземпляр класса , и обратиться к этой функции как к методу экземпляра класса (Instancing = MultiUse), или просто по имени (Instancing = GlobalMultiUse).
Либо опиши задачу подробнее.
Jeky
Дата: 19.02.2008 17:24:46
автор |
если это ActiveX DLL, и ссылка на неё в VBA-проекте есть, и в Object Browser функция видна |
да, все так. Убрал Declare..., в процедуре объявил:
Dim s As New MyClass1
Далее хочу вызвать процедуру MyProc1, которая входит в MyClass1 и в Object Browser видна как его метод:
Call s.MyProc1
получаю сообщение, что "Class does not support Automation or does not support expected interface".
Jeky
Дата: 19.02.2008 17:31:00
Перенес MyDLL.dll из системной папки в другую, поменял ссылку в Referen-сах, все заработало!
Но мне надо,чтобы библиотека лежала именно в System32, как быть?
Бенедикт
Дата: 19.02.2008 18:09:07
Jeky,
может быть проблема с версионностью (или с безопасностью). Обычные телодвижения:
Убрать ссылку на
Разрегистрировать
Удалить
Скомпилировать (кстати, с какими опциями совместимости компилируется?)
Разрегистрировать
Переместить в системную папку
Зарегистрировать
Добавить ссылку на
Посмотреть, что получилось.
Бенедикт
Дата: 19.02.2008 18:10:37
Да, ещё посмотреть с помощью Dependency Walker или аналогичной утилиты, нет ли у библиотеки зависимостей от других нестандартных библиотек.
Jeky
Дата: 19.02.2008 18:33:41
автор |
с какими опциями совместимости компилируется? |
Установлена толька опция "Оптим. на скорость" (если я посмотрел там где надо). Проделал все шаги - без толку.
автор |
нет ли у библиотеки зависимостей от других нестандартных библиотек |
если судить по ссылкам, то нет, а про Dependency Walker я знать не знаю.
Jeky
Дата: 19.02.2008 19:04:32
Еще раз проделал все шаги - заработало!!! Спасибо!