Видимость переменных за пределами DLL

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Видимость переменных за пределами DLL

Сообщение Yurich » 25.12.2004 (Сб) 11:49

Доброго ВСЕМ!
Пишу DLL на VB. Часть внутренних переменных и констант должна быть видима за ее пределами, как это сделать?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 25.12.2004 (Сб) 12:07

Сам никогда не писал dll, но могу посоветовать сделать в dll функции, возвращаюшие эти константы и переменные :)

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 25.12.2004 (Сб) 12:18

Amed писал(а):...могу посоветовать сделать в dll функции, возвращаюшие эти константы и переменные :)


Не годится, тогда придется повторно указывать их типы в головной программе.

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 25.12.2004 (Сб) 12:38

Всё, дошло!
У меня переменные и типы сидят в модуле! А надо их поместить внутрь класса и объявить как Public.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.12.2004 (Сб) 17:22

Yurich писал(а):
Amed писал(а):...могу посоветовать сделать в dll функции, возвращаюшие эти константы и переменные :)

Не годится, тогда придется повторно указывать их типы в головной программе.

А зачем, кстати? Вроде и так всё должно работать?
Изображение

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 25.12.2004 (Сб) 20:04

tyomitch писал(а):
Yurich писал(а):
Amed писал(а):...могу посоветовать сделать в dll функции, возвращаюшие эти константы и переменные :)

Не годится, тогда придется повторно указывать их типы в головной программе.

А зачем, кстати? Вроде и так всё должно работать?

В отношении стандартных типов так и есть. Если пытаюсь объявить свой тип как Public - выдается сообщение об ошибке в процессе компиляции. Кроме того, если тип поместить не в модуль, а в класс, то он не виден в других классах DLL-ки.
Кстати, заметил, что перечисления, объявленные в классе видны как внутри, так и за пределами DLL!!!

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

Сообщение Ennor » 25.12.2004 (Сб) 20:14

Структуры (ты уж извини, но мне UDT так называть привычнее) нельзя выставить наружу из библиотеки, и даже из класса - таково ограничение COM Automation. А насчет енамов - ну да, если они у тебя как Public объявлены...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.12.2004 (Сб) 20:35

Ennor писал(а):Структуры (ты уж извини, но мне UDT так называть привычнее) нельзя выставить наружу из библиотеки, и даже из класса - таково ограничение COM Automation. А насчет енамов - ну да, если они у тебя как Public объявлены...
Чего? UDT прекрасно выставляются наружу из публичного класса. Может, ты с VB5 спутал?
Изображение

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 25.12.2004 (Сб) 21:13

tyomitch писал(а):UDT прекрасно выставляются наружу из публичного класса. Может, ты с VB5 спутал?

Tyomitch, ты молоток! Спасибо всем! Похоже, начало получаться!

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

Сообщение Ennor » 26.12.2004 (Вс) 19:32

Нет, не спутал - я на нем никогда не писал :) Скорее забывать начал и путаться. Его напрямую выставить нельзя, а вот через свойство - не помню уже...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.12.2004 (Вс) 19:43

Можно-можно. Моя чудо-обёртка прекрасно выставляет наружу тип TPoint ;-) (не через свойство, а как Public Type)
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.12.2004 (Пн) 5:21

Угу :)
Можно в том случае, если тип проекта содержит подстроку ActiveX :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

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

    TopList  
cron