C# объект из VB6
От: Morpheus_  
Дата: 15.01.07 11:11
Оценка:
UserControl объект на C# нужно использовать из VB6, зарегистрил класс в сборке как ActiveX
В контроле есть метод void DoWork(), нужно его вызвать из VB6...
        public void DoWork()
        {
            MessageBox.Show("DoWork is OK");
        }


Дело в том что я совершенно не знаю VB...
Вставил контрол на форму, добавил кнопку, закладки с событиями не нашел... ну ладно думаю, два раза кликнул на ней — открылось окно с кодом для обрабочика нажатия кнопки , пишу так:

Private Sub Command1_Click()
   ButtonX1.DoWork

End Sub


запускаю, нажимаю на кнопку и получаю ошибку:

Run-time error '5':

Invalid procedure call or argument


как это интерпретировать? почему не работает?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: C# объект из VB6
От: _FRED_ Черногория
Дата: 15.01.07 11:49
Оценка:
Здравствуйте, Morpheus_, Вы писали:

M_>… закладки с событиями не нашел...


В редакторе кода, если мне не изменяет память, вверху выбирай из выпадающего списка объект (справа) и событие (слева).

M_>Private Sub Command1_Click()
M_>  Call ButtonX1.DoWork
M_>End Sub


M_>запускаю, нажимаю на кнопку и получаю ошибку:

M_>Run-time error '5':
M_>Invalid procedure call or argument

M_>как это интерпретировать? почему не работает?

В какой строке?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[2]: C# объект из VB6
От: Morpheus_  
Дата: 15.01.07 12:31
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Morpheus_, Вы писали:


M_>>… закладки с событиями не нашел...


_FR>В редакторе кода, если мне не изменяет память, вверху выбирай из выпадающего списка объект (справа) и событие (слева).


ну вроде ясно, только почемуто не работают события, ну да ладно они вобщемто не очень то и нужны, нужно метод у объекта вызывать...

_FR>
M_>>Private Sub Command1_Click()
M_>>  Call ButtonX1.DoWork
M_>>End Sub
_FR>


M_>>запускаю, нажимаю на кнопку и получаю ошибку:

_FR>

M_>>Run-time error '5':
M_>>Invalid procedure call or argument

M_>>как это интерпретировать? почему не работает?

_FR>В какой строке?


дык строки всего 3
вот в этой (добавил Call, но это ничего не изменило):
   Call ButtonX1.DoWork


вначале подумал, может VB не понравилось что этот метод MessageBox открывает (фиг уж его знает что ему не нравится)... сделал метод пустым — таже беда

Все становится еще непонятнее от того что ActiveX работает, пробовал в JavaScript и VBScript на HTML странице — все работает нормально...

Что этому VB6 нужно??? Может ему нужно чтобы метод какимто особенным был? Помогите плиз, очень нужно решить этот вопрос...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: C# объект из VB6
От: Morpheus_  
Дата: 15.01.07 14:46
Оценка:
M_>вот в этой (добавил Call, но это ничего не изменило):
M_>
M_>   Call ButtonX1.DoWork
M_>


Ура, получилось!

Нужно делать так:
    ButtonX1.Object.DoWork


Кто бы мог подумать... оказывается у ButtonX1 хоть и есть метод DoWork но вызывать его нельзя, а вот у Object нет метода DoWork но вызывать можно
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.