Получить доступ к свойствам EXE, вызвавшего dl в функции dll

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

Получить доступ к свойствам EXE, вызвавшего dl в функции dll

Сообщение shady » 03.12.2008 (Ср) 9:39

Добрый день.
Подскажите пожалуйста. Вызывая в приложении (MyProg.EXE) некую функцию из моей же dll, могу ли я получить доступ (из dll) к свойствам MyProg.EXE, таким как App.EXEName, App.ProductName и т.д.
Спасибо.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Получить доступ к свойствам EXE, вызвавшего dl в функции dll

Сообщение Antonariy » 03.12.2008 (Ср) 10:09

Нет.
Лучший способ понять что-то самому — объяснить это другому.

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

Re: Получить доступ к свойствам EXE, вызвавшего dl в функции dll

Сообщение tyomitch » 03.12.2008 (Ср) 10:25

Почему нет?
Пусть EXE передаст в DLL свой объект App
Изображение

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

Re: Получить доступ к свойствам EXE, вызвавшего dl в функции dll

Сообщение Денис » 03.12.2008 (Ср) 10:27

В том виде, в котором ты задал вопрос, нет.
Однако, телепатически можно догадаться, что ты хочешь реализовать что-то типа контроля версий либо изменения поведения функций/объектов, в зависимости от вызвавшей их программы. В этом случае есть два варианта:
1. Если dll — native, просто добавляешь к аргументам функции еще один, которым ты будешь передавать в функцию некий параметр из программы. Например:
Код: Выделить всё
public function MyFunc(A2 as long, A3 as String, ParamEXEName as string, ParamProductName as string) as long

Как-то так. Можно еще сделать структуру и передавать ее одним параметром, если переменных много.
2. Если dll — ActiveX, то все еще проще. Делаешь у объектов свойства или публичные переменные, соответствующие параметрам программы, которые ты хочешь передать в объект и устанавливаешь значения этих свойств сразу после
Код: Выделить всё
Set A1 = new clsA1


ADD: Сделать публичную переменную App и передать объект App программы.
Вот.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Получить доступ к свойствам EXE, вызвавшего dl в функции dll

Сообщение Antonariy » 03.12.2008 (Ср) 10:35

Ну да, App же не приватный класс, типа UserControl'а…
Лучший способ понять что-то самому — объяснить это другому.


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

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

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

    TopList