Создание типов в dll

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Создание типов в dll

Сообщение Vovik » 04.06.2004 (Пт) 18:05

У мя маленькая проблемка... Пишу длл... Короче, в классе создаю тип, напрмер MyType - всё ок.
Создаю функцию типа:
Public Function GetEr() as MyType
GetEr = 0
End Function
компилю...при запуске проекта с моей библиотекой вылетает какая-то ошибка... В то же время создаю вторую, абсолютно не нужную функцию того же типа, но в другом классе и всё работает! Что ж это такое? помогите плз... :cry:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 04.06.2004 (Пт) 18:10

А разве User-Defined Types могут принимать значение в целом?
Типа
Код: Выделить всё
Type MyType
A As Long
B As Long
End Type

Function Bla() As MyType
Bla = 0
End Function
Ведь у функции возвращаемое значение типа MyType, а не числового типа... Можно, по-моему, только Bla.A = 0: Bla.B = 0... :roll:

Кстати, если Type - Private, то и функция должна быть Private.
Нет меня больше

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 04.06.2004 (Пт) 18:14

ну эт понятно же...трабла то ведь не в этом! поверь, за 3 года программирования я знаю как создаются и применяются типы... просто глюк какой-то... :cry: тип - public, функция - public... если ту другую в другом классе не делать public, то выскакивает этот самый глюк.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 04.06.2004 (Пт) 18:45

ЕМНИП, структуры не могут быть публичными аргументами/возвр. значениями/объявленными в классах. Если у тебя Private Type, то хоть обсоздавайся, а вот Public - низзя! Одно из ограничений архитектуры COM, на которое кладут прибор сишники и которое перекладывает означенный прибор на VB-шников. Подробности см. Bruce McKinney, "Hardcore Visual Basic".

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 04.06.2004 (Пт) 21:48

хм...ну я всё же обманул, написав пустую функцию в невидимом классе... судя по всему - это один выход..эх... :cry:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 04.06.2004 (Пт) 22:24

Vovik писал(а):ну эт понятно же...трабла то ведь не в этом! поверь, за 3 года программирования я знаю как создаются и применяются типы... просто глюк какой-то... :cry: тип - public, функция - public... если ту другую в другом классе не делать public, то выскакивает этот самый глюк.
Извини... :roll: просто, я подумал, что проблема в этом... :roll:
Нет меня больше

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 05.06.2004 (Сб) 10:18

ааа...не обращай внимания... это я некорректно задал вопрос, вот и всё. :D :lol:

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 08.06.2004 (Вт) 1:30

А вот неподскажет-ли кто как дллшку написать что когда её запускаеш шоб форма открывалась ! :)
Max!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.06.2004 (Вт) 9:08

Можно использовать не типы, а классы, тогда все пройдет на ура. Только медленно :)
Lasciate ogni speranza, voi ch'entrate.

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 08.06.2004 (Вт) 9:36

а ещё можно попробывать переменную нужного типа передавать как параметр, ну а в процедуре записывать в эту переменную всё что надо...

вроде это должно работать...


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 11

    TopList