Sub Main в DLL

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

Sub Main в DLL

Сообщение NIC » 11.10.2007 (Чт) 19:15

Я написал библу в которой несколько классов.
А при попытке компиялции VB пишет что Sub Main не найдена.
Создал пустую всё Ок. Библа работает. Стало интересно зачем там Sub Main?

Nic. (библа ActiveX Dll)

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 11.10.2007 (Чт) 21:18

Видимо у тебя в Project -> Properties стоит Startup Object = Sub Main. Вот и все. Выбери None и забудь.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 11.10.2007 (Чт) 21:50

Благодарен!

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 12.10.2007 (Пт) 0:11

А ещё такая прелесть может возникнуть если ты сначала создавал Простой проект, потом удалил снего все формы и решил добавив классы сделать ActiveX DLL и что более вероятно что до этого был промежуточный этап ActiveX EXE :)


С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 12.10.2007 (Пт) 0:28

Создал новый проект ActiveX dll добавил старые классы.Теперь не просит.

А в чём разница между ActiveX dll и ActiveX exe?
И instancing класса 5 и 6?

С уважением Nic.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 12.10.2007 (Пт) 0:32

в выполнении у них разница есть ... одна внутреняя вторая внешняя ... у меня саб майн на экзешке выпрыгивает :? :oops: а полезен он будет если ты ахочешь свой компонент запустить например как обычную экзешку .... а не вызовом из другой программы (интерфейсики там всякие насоздавать например :))
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 12.10.2007 (Пт) 0:40

SSecurity писал(а):в выполнении у них разница есть ... одна внутреняя вторая внешняя ... у меня саб майн на экзешке выпрыгивает :? :oops: а полезен он будет если ты ахочешь свой компонент запустить например как обычную экзешку .... а не вызовом из другой программы (интерфейсики там всякие насоздавать например :))


Другими словами exe как бы имеет главную точку входа для выполнения? А к ActiveX EXE я могу впоследствии обращаться как к ActiveX Dll?

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 12.10.2007 (Пт) 0:53

Можешь ... просто учти ...что если у тебя он ещё не создан, то он у тебя создатся :))) характерный пример .... EXCEL

если написать
Код: Выделить всё
  Dim exl as New Excel.Application
  Set exl = New Excel.Application


то у тебя запустится эксель ....
но ты можешь просто взять и запустить его из командной строки...

тогда все обращения ... при коде
Код: Выделить всё
  Dim exl as Excel.Application
  ... 


пойдут к уже существующему объекту .... если он у тебя открыт был ранее, например :)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 12.10.2007 (Пт) 1:01

Если я правильно понял при подключении Dll.exe - при создании на него ссылки создасться обьект DLL?

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 12.10.2007 (Пт) 1:04

В реферансах тоже можешь сослаться ... как и обычная ДЛЛ .... вот когда класс вызовешь тогда он и создатся :)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 12.10.2007 (Пт) 1:09

Поняно. :D
А instance класса потом надо удалять?
Типа Set MyClass=Nothing?
(при завершении?)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 12.10.2007 (Пт) 1:15

Ну смотря какую цель ты приследуешь .... у меня например несколько клиентов от одного АктивХ EXE данные брали (т.е. приложения могли обмениваться между собой через ActiveX) .... когда одно приложение отмирало - второе ещё было на связи :) И по этому у меня проверялось кол-во открытых классов и при переходе в 0 отрубался сам ActiveX :) обычным End
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 12.10.2007 (Пт) 1:20

Имееться ввиду при завершении всего приложения. Или end сам всё сделает?

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 12.10.2007 (Пт) 1:29

END в АктивХ - сам все сделает :)))

Я вот не эксперерементировал, но по сути это получается и DLL и ЕХЕ в одном флаконе:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 12.10.2007 (Пт) 1:31

Да похоже.


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 102

    TopList