Передача данных из DLL

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

Передача данных из DLL

Сообщение Niko » 26.04.2007 (Чт) 10:28

Добрый день.
У меня есть DLL библиотека в которой есть одна форма Form1
Эту DLL я подгружаю к основной программе.
Как мне передать данные из Form1 в основную программу?
Возможно ли выполнить функцию WebBrowser.Navigate из Form1 если WebBrowser находится в основной программе?
---
Думаю надо использовать SendMessage но не могу найти информации по этой функции, какие сообщения посылать.

И еще один вопрос, правда не по теме.
Мне нужно загрузить страничку и посмотреть что на ней есть, но визуально на экран ее выводить не надо. сейчас я это бедаю через WebBrowser.Document.Body.InnerText
Есть ли контрол который может это сделать быстрее WebBrowser-а.
Буду очень признателен если подскажете что это за контрол и как с ним работать.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Передача данных из DLL

Сообщение Хакер » 26.04.2007 (Чт) 12:42

Niko писал(а):Добрый день.
У меня есть DLL библиотека в которой есть одна форма Form1
Эту DLL я подгружаю к основной программе.
Как мне передать данные из Form1 в основную программу?
Возможно ли выполнить функцию WebBrowser.Navigate из Form1 если WebBrowser находится в основной программе?


Если ты об ActiveX DLL, то у тебя есть доступ к Public-объектам. Значит есть возможность создать у Public-объекта метод, который бы возвращал нужные данные.

А теперь примени эту теорию к своему случаю.


Niko писал(а):Думаю надо использовать SendMessage но не могу найти информации по этой функции, какие сообщения посылать.


Неправильно думаешь.

Niko писал(а):И еще один вопрос, правда не по теме.
Мне нужно загрузить страничку и посмотреть что на ней есть, но визуально на экран ее выводить не надо. сейчас я это бедаю через WebBrowser.Document.Body.InnerText
Есть ли контрол который может это сделать быстрее WebBrowser-а.
Буду очень признателен если подскажете что это за контрол и как с ним работать.


Ты понимаешь что мир состоит не из одних контроллов? И что контроллы это в большинстве случаев всего лишь переходники на соотв. api функции соотв. библиотек.

А "контролы", контролы есть.
Internet Transfer Controls, Win Http Services, WinSock

Соответственно являются переходниками к
winhttp.dll, wininet.dll, wsock32.dll

(в порядке возрастания сложности реализации задуманного)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение Antonariy » 26.04.2007 (Чт) 13:42

Как мне передать данные из Form1 в основную программу?
Возможно ли выполнить функцию WebBrowser.Navigate из Form1 если WebBrowser находится в основной программе?
Создай в своей библе публичное событие, которое запускалось бы из формы, а в приложении лови его.
Мне нужно загрузить страничку и посмотреть что на ней есть, но визуально на экран ее выводить не надо. сейчас я это бедаю через WebBrowser.Document.Body.InnerText
Есть ли контрол который может это сделать быстрее WebBrowser-а
MSXML.XMLHTTP или XMLHTTPRequest. В поиск.
Лучший способ понять что-то самому — объяснить это другому.

Niko
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 102
Зарегистрирован: 16.03.2006 (Чт) 14:43

Сообщение Niko » 26.04.2007 (Чт) 13:45

Спасибо. по второму вопросу разобрался.
Вот с созданием события что-то не получается. :( буду искать.

Niko
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 102
Зарегистрирован: 16.03.2006 (Чт) 14:43

Сообщение Niko » 26.04.2007 (Чт) 14:28

есть Project1 и Project2
Project1 содержит Class1 и Form1
Projek2 содержит Form2

Class1:
Код: Выделить всё
Public Event aa()

Public Sub ShowForm()
    Form1.Show
End Sub

Friend Sub RaiseEv()
    RaiseEvent aa
End Sub


Form1:
Код: Выделить всё
Public cll As New Class1

Private Sub Command1_Click()
cll.RaiseEv
End Sub


Form2:
Код: Выделить всё
Dim WithEvents cl As Class1

Private Sub Form_Load()
Set cl = New Class1
cl.ShowForm
End Sub

Private Sub cl_aa()
Me.Caption = "Заработала!!!"
End Sub

Не работает :(
Не подскажете где ошибка?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 26.04.2007 (Чт) 15:09

Собственно в том, что cl1 в первом проекте и c1 вов втором это разные экземпляры класса Class1

[ADD]
а лечится например так:
Код: Выделить всё
Public Sub ShowForm()
    Form1.Show
    Set Form1.cl1 = Me
End Sub


З.Ы. Вообще пример кода мягко говоря не кошерный
[/ADD]
Последний раз редактировалось Viper 26.04.2007 (Чт) 15:16, всего редактировалось 1 раз.
Весь мир матрица, а мы в нем потоки байтов!

Niko
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 102
Зарегистрирован: 16.03.2006 (Чт) 14:43

Сообщение Niko » 26.04.2007 (Чт) 15:15

Создай в своей библе публичное событие, которое запускалось бы из формы, а в приложении лови его.

Как тогда это сделать?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 26.04.2007 (Чт) 15:18

выше смотри
Весь мир матрица, а мы в нем потоки байтов!

Niko
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 102
Зарегистрирован: 16.03.2006 (Чт) 14:43

Сообщение Niko » 26.04.2007 (Чт) 15:19

:D спасибо! Заработала!


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

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

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

    TopList