Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Андрей
Зарегистрирован: 10.04.2002 Сообщения: 47
|
Добавлено: Ср Мар 20 2002 11:11 Заголовок сообщения: dll на VBA - Help!!! |
|
|
Написал dll на VBA и пытаюсь вызвать тамошнюю процедурку из Delphi - орет "Точка входа в процедуру ... не найдена в ... dll ...". Как в dll VBA указать процедуре точку входа (т.е., что она будет вызвана из другой проги)? |
|
Вернуться к началу |
|
|
Славик Гость
|
Добавлено: Чт Мар 21 2002 17:20 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
Я столкнулся с этим в самом VBA for Exel, а DLL я писал на VC++. Так вот при декларировании функции командой: Private Declare Function MyFunction Lib "MyDll" (ByVal number As Integer) As Integer у меня возникала таже ошибка, я вышел из этой ситуации так: Private Declare Function MyFunction Lib "MyDll" Alias "#1" (ByVal number As Integer) As Integer имеется ввиду что для функции MyFunction указывается не ее имя а индекс в файле DLL, по документации индексы можно присваивать в произвольном порядке, но я пока не разобрался в этом. |
|
Вернуться к началу |
|
|
Андрей
Зарегистрирован: 10.04.2002 Сообщения: 47
|
Добавлено: Пт Мар 22 2002 09:31 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
А как мне вызывать эту процедуру из VBA - по алиасу или просто по имени? А как вызвать ее из Delphi, это возможно? |
|
Вернуться к началу |
|
|
Славик Гость
|
Добавлено: Пт Мар 22 2002 09:41 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
Вот как работает такая структура в VBA:
Private Declare Function My Lib "c:\Convert.dll" Alias "#1" (ByVal number As Integer) As Integer
Private Sub CommandButton1_Click() Dim i As Integer Dim s As String s = "S" i = My(s) End Sub
т.е. функция вызывается просто по имени, но есть еще инструкция Call, это в принципе альтернатива. Как это все работает в Делфи я не знаю. Может и вы бы мне помогли с одним вопросом? Посмотрите форум за 21 число, тема "Очень простенький вопрос". С уважением Святослав. |
|
Вернуться к началу |
|
|
Андрей
Зарегистрирован: 10.04.2002 Сообщения: 47
|
Добавлено: Пт Мар 22 2002 10:08 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
Извини, на твой вопрос ответить не могу А как должна быть объявлена процедура в dll и зачем именно нужен алиас? |
|
Вернуться к началу |
|
|
Славик Гость
|
Добавлено: Пт Мар 22 2002 10:36 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
Есть такая теория, что функции в DLL имеют кроме названия символьного еще и порядковый номер, этот номер присваивается автоматически, но можно присвоить вручную с помощью такой инструкции @N, где N номер который ты хочешь присвоить функции, но у меня так и нечего не получилось. Так вот алиас указывается когда в своем проекте VBA ты хочешь использовать отличное от DLL имя функции, тогда в алиасе ты указываешь настоящее имя или порядковый номер функции. Так вот вызвать из VBA функцию DLL у меня получается только по порядковому номеру. А как объявлять функцию посмотри на указаной мною до этого теме, там уже есть пример. С уважением Святослав. |
|
Вернуться к началу |
|
|
Андрей
Зарегистрирован: 10.04.2002 Сообщения: 47
|
Добавлено: Пт Мар 22 2002 10:47 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
Спасибо большое! Но ты меня не совсем понял... или я тебя... Дело в том, что dll написана на VBA. Все процедуры там описаны как в обычном коде VBA. На сколько я знаю, в dll надо указать функции (процедуре), что она будет вызываться извне (например командой "external"). Так ли это? Помоги пжлст! Заранее благодарен! (ты мне уже здорово помог, спасибо |
|
Вернуться к началу |
|
|
Славик Гость
|
Добавлено: Пт Мар 22 2002 10:59 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
Да, конечно ты совершенно прав, для функции которая будет использоваться внешними приложениями указывается специальная инструкция EXPORT (это в VC++), в VBA наверняка есть такая инструкция, это общая теория для всех DLL не важно на каком они языке пишутся. Так что ищи. А я вот тоже мечтаю занятся Visual Basic'ом, мне кажется он более удобен для программирования, и все основные концепции в нем есть, только никак не могу найти его (ну естественно бесплатную версию). Святослав. |
|
Вернуться к началу |
|
|
Андрей
Зарегистрирован: 10.04.2002 Сообщения: 47
|
Добавлено: Пт Мар 22 2002 11:14 Заголовок сообщения: Re: dll на VBA - Help!!! |
|
|
Спасибо большое! Только вся проблема заключается в отсутствии в хелпе аналога Export . Дело в том, что я юзаю SCADA Genesis32 - программать приходится на VBA в примочке ScriptWorX32, а там есть возможность создать из файла dll (метод обработки формы SCADA из Delphi). Но как описать "export" - хрен его знает - нигде не найти, прямо не знаю что делать Еще раз спасибо. С уважением, Андрей. Удачи! |
|
Вернуться к началу |
|
|
|