как мне подключить ActiveX - DLL ? VB6

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 25.08.2009 (Вт) 15:48

привет всем!

как мне подключить ActiveX - DLL содержащую набор функций процедур и переменных?

при обращении любом обращении к объектам из dll вылетает
runtime error '424'. object not found.

я так понял что никакой интерфейсной части в dll на VB нету чтоли вообще?

я подключая просто указываю reference в меню project->references
VB6

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 25.08.2009 (Вт) 17:02

А код привести? Как функции объекта вызываешь.

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 8:27

допустим какая то функция и переменная объявлены в DLL так
Код: Выделить всё
Public V1 As String
Sub F1(A As Integer, B As Integer)


вызываю их так
Код: Выделить всё
V1= "string"
Call F1(1,2)


при выполнении или второй (если закомментировать первую) или первой строки вылетает "object not found"

вот вопрос как такое подключить

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение Денис » 26.08.2009 (Ср) 8:42

salvequick писал(а):вот вопрос как такое подключить


В ActiveX dll нет функций, процедур и переменных (они имеются в т.н. native-dll)
Здесь же есть классы и их методы.

В библиотеке:
Код: Выделить всё
'код класса clsA1
Public V1 As String
PUBLIC Sub F1(A As Integer, B As Integer)


В проекте с подключенной библиотекой:
Код: Выделить всё
dim cA1 as clsA1
cA1.V1= "string"
Call cA1.F1(1,2)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 8:54

Денис писал(а):
В ActiveX dll нет функций, процедур и переменных (они имеются в т.н. native-dll)
Здесь же есть классы и их методы.

В библиотеке:
Код: Выделить всё
'код класса clsA1
Public V1 As String
PUBLIC Sub F1(A As Integer, B As Integer)


В проекте с подключенной библиотекой:
Код: Выделить всё
dim cA1 as clsA1
cA1.V1= "string"
Call cA1.F1(1,2)


а как же объявить классы в VB6 ? он же не объектный язык
почему объявляем так?
Код: Выделить всё
dim cA1 as clsA1

где видно что мы объявили какой то класс в DLL ?

есть какая то статья на эту тему?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 9:48

salvequick писал(а):
Денис писал(а):
В ActiveX dll нет функций, процедур и переменных (они имеются в т.н. native-dll)
Здесь же есть классы и их методы.

В библиотеке:
Код: Выделить всё
'код класса clsA1
Public V1 As String
PUBLIC Sub F1(A As Integer, B As Integer)


В проекте с подключенной библиотекой:
Код: Выделить всё
dim cA1 as clsA1
cA1.V1= "string"
Call cA1.F1(1,2)


а как же объявить классы в VB6 ? он же не объектный язык
почему объявляем так?
Код: Выделить всё
dim cA1 as clsA1

где видно что мы объявили какой то класс в DLL ?

есть какая то статья на эту тему?


Cначала скажи, как ты умудрился создать ActiveX DLL без единого класса?
А вообще читай книжки по VB6, тогда подобные смешные вопросы не возникнут

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 10:04

у меня нет книжек

была уже библиотека написанная
я поменял там одну функцию
изменил прототип , добавил параметр

интерфейсной части никакой я не нашел, поэтому изменил только функцию

теперь измененная библиотека не работает

вот и пытаюсь разобраться как это должно работать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 10:13

salvequick писал(а):у меня нет книжек



Скачай в сети.


По поводу кода, создай экземпляр класса и вызывай его методы

Код: Выделить всё
dim cA1 as New clsA1

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 10:22

мне понятно что надо создать класс и вызывать его метода

непонятно откдуда взято clsA1
откуда взято clsA1??
я нигде не виду строчек в описании библиотеки

Код: Выделить всё
class  clsA1
{



};

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 10:28

salvequick писал(а):мне понятно что надо создать класс и вызывать его метода

непонятно откдуда взято clsA1
откуда взято clsA1??
я нигде не виду строчек в описании библиотеки

Код: Выделить всё
class  clsA1
{



};


Ну все ясно... Покупай книгу по VB6 и начинай изучение с азов. Что-то объяснять человеку с нулевыми знаниями - бесполезно.

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 10:38

господа ))) какие книги по VB

мне надо просто подправить было библиотеку и все
ну не буду я ради этого читать книгу а VB, все равно не моя специальность

неужели так вот так сложно объяснить или дать ссылку на нормальную статью

to jangle
ЧСЗ overflow у вас похоже случился ))

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 10:52

salvequick писал(а):господа ))) какие книги по VB

мне надо просто подправить было библиотеку и все
ну не буду я ради этого читать книгу а VB, все равно не моя специальность

неужели так вот так сложно объяснить или дать ссылку на нормальную статью

to jangle
ЧСЗ overflow у вас похоже случился ))


Ответ был дан выше. Создать экземпляр класса перед вызовом метода из ActiveX Dll.
Но проблема в том, что ты не понимаешь о чем тебе говорят, из-за отсуствия элементарных знаний по-программированию.
Поэтому просто выложи код в форум, и его тебе исправят. Ссылки на статьи в данном случае бесполезны.

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 11:07

элементарных знаний по программированию ну и ладно )

неужели нельзя было просто сказать что имя класса соответствует имени файла модуля класса?

это в модуле класса Dll. Class1.cls
Код: Выделить всё
Public V1 As String
Public Sub F1(A As Integer, B As Integer)

End Sub


это в программе использующей -dll
Код: Выделить всё
Private Sub Command1_Click()
Dim c As New Class1
c.V1 = "aaaaaaffffffff"   'здесь возникает ошибка     object required
End Sub


вот получается как ... вроде все верно сделано

получившуюся dllname.dll зарегистрировал c помощью regsrv32
ссылку в project->reference сделал

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 11:24

Нифига неверно сделал. Знаний всетаки - нет. :mrgreen:

1ая ошибка, параметры в F1 должны быть две константы Integer, а ты передаешь одну строку.
2ая ошибка,
Код: Выделить всё
c.V1 =
бред у тебя же Sub. Поэтому
Код: Выделить всё
Call c.V1 (1,2)
вот так верно

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение ANDLL » 26.08.2009 (Ср) 11:50

Жангл, ты там бухаешь когда сидишь на форуме?
V1 - это property
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 11:52

ANDLL писал(а):Жангл, ты там бухаешь когда сидишь на форуме?
V1 - это property


У него это Sub, смотри код

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение ANDLL » 26.08.2009 (Ср) 11:52

Dim c As New Class1
c.V1 = "aaaaaaffffffff" 'здесь возникает ошибка object required
Мож ты в одном месте написал с, а в другом c?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 12:52

ANDLL писал(а):Жангл, ты там бухаешь когда сидишь на форуме?
V1 - это property


))))
ну да именно так

я хочу объявить один Sub и один property V1

в примере потом я показал именно обращение к property V1
а не Call c.F1(1,2)
Последний раз редактировалось salvequick 26.08.2009 (Ср) 13:00, всего редактировалось 1 раз.

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 12:54

ANDLL писал(а):
Dim c As New Class1
c.V1 = "aaaaaaffffffff" 'здесь возникает ошибка object required
Мож ты в одном месте написал с, а в другом c?


в одном русское в другом английское?
да неее

проверил еще раз

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 12:55

jangle писал(а):Нифига неверно сделал. Знаний всетаки - нет. :mrgreen:


не рано на форум то вылез советы давать? :mrgreen: :mrgreen: :mrgreen:
может самому чего почитать?

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 13:09

Ситуация сейчас такая

вот это работает правильно
я написал эти две кототкие программы

В модуле сlass1.cls в библиотеке
Код: Выделить всё
Public V1 As String
Public Sub F1(A As Integer, B As Integer)

End Sub


В программе вызывающей
Код: Выделить всё
Private Sub Command1_Click()
Dim kls As New Class1
kls.V1 = "3433434"
Call kls.F1(1, 2)
End Sub



но самый главный вопрос остался....
почему у меня не работает большая либа???
вылетает object not found ...
там все тоже самое ...просто поменяли одну функцию перестало работать

все пересобирал, и библиотеку и приложение, библиотеку регистрировал

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение Денис » 26.08.2009 (Ср) 13:27

salvequick писал(а):но самый главный вопрос остался....
почему у меня не работает большая либа???

Боюсь, что действительно надо код смотреть. Кем написана та либа? Может она юзает сабклассинг? (или что-нибудь еще термоядерное)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 14:00

salvequick писал(а):
ANDLL писал(а):Жангл, ты там бухаешь когда сидишь на форуме?
V1 - это property


))))
ну да именно так

я хочу объявить один Sub и один property V1

в примере потом я показал именно обращение к property V1
а не Call c.F1(1,2)


Для начала научись правильно выкладывать код.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 14:04

salvequick писал(а):
jangle писал(а):Нифига неверно сделал. Знаний всетаки - нет. :mrgreen:


не рано на форум то вылез советы давать? :mrgreen: :mrgreen: :mrgreen:
может самому чего почитать?


Ты тратишь вторые сутки, на решение вопроса который займет несколько минут у ученика средней школы,
на уроке информатики. Это какбы характерезует тебя...

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 14:08

все решилось .......

оказывается помимо меня в dll вносили еще изменения ....
и их никто не проверял.

ну и когда нашли что еще меняли все стало ясно.

salvequick
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 27.09.2007 (Чт) 10:24

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение salvequick » 26.08.2009 (Ср) 14:12

jangle писал(а):
salvequick писал(а):
jangle писал(а):Нифига неверно сделал. Знаний всетаки - нет. :mrgreen:


не рано на форум то вылез советы давать? :mrgreen: :mrgreen: :mrgreen:
может самому чего почитать?


Ты тратишь вторые сутки, на решение вопроса который займет несколько минут у ученика средней школы,
на уроке информатики. Это какбы характерезует тебя...


ты как бы эта... чего злой то такой? :mrgreen:

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение Денис » 26.08.2009 (Ср) 14:27

salvequick писал(а):ты как бы эта... чего злой то такой?

Наверное в баню хочет... попариться.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как мне подключить ActiveX - DLL ? VB6

Сообщение jangle » 26.08.2009 (Ср) 14:39

salvequick писал(а):
ты как бы эта... чего злой то такой? :mrgreen:


Меня невозможно разозлить. Выше дал объективную оценку твоим знаниям в области программирования на VB.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

    TopList