Скрестить проги VB6 and VB/Net

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

Скрестить проги VB6 and VB/Net

Сообщение Fedorfx » 27.11.2004 (Сб) 1:11

Всем привет.
Изучаю нет
перевожу проги туда же
Проги большие и приходиться рвать кусками.
Получается что текущая прога из 6 вызывает прогу написанную на НЕТ
( ну например прога на 6-ке а диалог на Нет )
как передать данные из Нет в 6-ку(и наоборот)
а) Строку
б) Массив ( не строк)
в) Класс

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

Сообщение GSerg » 27.11.2004 (Сб) 4:04

Сложно понять, что и как ты передаёшь, но...

В NET, скорее всего, надо заюзать атрибуты маршаллинга (marshalas).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение Max! » 27.11.2004 (Сб) 5:01

А может неломать голаву и писать всё с нуля !

:wink:
Max!

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 27.11.2004 (Сб) 11:13

Max! писал(а):А может неломать голаву и писать всё с нуля !

:wink:


тертически согласен, но на практике приходится все же поэтапно. Вот учу дао.нет . совсем другая концепция. новые контролы, новые возможности. а до других модулей проги пока руки не дошли. отсюда и вопросы.

НАПРИМЕР.

Как проще всего передать одну строку из проги на vb6 в прогу на vbnet
первое что приходит на ум - записать в файл -реестр и послать массадж уведомление.
можно и сокетом пользоваться но тоже гим-но.
P.S. а в сам мессадж -что можно засунуть??

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

Сообщение GSerg » 27.11.2004 (Сб) 11:16

А, так вон в чём вопрос :)

Ну для начала надо абстрагироваться от платформы и почитать всё, чот есть в MSDN на тему Interprocess communiations. Выбрать подходящий метод. Вот потом реализовывать :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 29.11.2004 (Пн) 11:16

Fedorfx писал(а):Как проще всего передать одну строку из проги на vb6 в прогу на vbnet
первое что приходит на ум - записать в файл -реестр и послать массадж уведомление.
можно и сокетом пользоваться но тоже гим-но.
P.S. а в сам мессадж -что можно засунуть??


Странные мысли однако приходят тебе на ум :wink:
NET достаточно хорошо работает с COM и наоборот.

Например последнее творчество нашего отдела
3 зв. NET -> COM+ -> SQL

Напиши подробнее что ты хочешь получить

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 29.11.2004 (Пн) 13:21

т.е. можно запустить прогу на Vb6 через пол часа прогу на VB NET и они будут юзать общий COM обьект?

Где можно ознакомиться с творчеством?

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 29.11.2004 (Пн) 23:47

Fedorfx писал(а):Где можно ознакомиться с творчеством?



Вот пример без изысков C# -> VB6 пользующий поднее связывание.
Вложения
C#Test.zip
(13.67 Кб) Скачиваний: 31

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 30.11.2004 (Вт) 0:26

спасибо - уже смотрю.

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 30.11.2004 (Вт) 0:48

за пример все спасибо НО
там простой COm написанный на VB и вызов его из под NET
но насколько это соотвествует
----------------------
т.е. можно запустить прогу на Vb6 через пол часа прогу на VB NET и они будут юзать ОБЩИЙ COM обьект?
----------------------------------------------
У меня настойчивое дежавю. Вроде эту тему я гдето видел. Надо порытся в архиве думаю.

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

Сообщение tyomitch » 30.11.2004 (Вт) 7:39

Fedorfx писал(а):У меня настойчивое дежавю. Вроде эту тему я гдето видел. Надо порытся в архиве думаю.

Может, старый анек: "скрестили ужа и ежа, получили два метра колючей проволоки"? :-)
Изображение

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 30.11.2004 (Вт) 11:58

Fedorfx писал(а):т.е. можно запустить прогу на Vb6 через пол часа прогу на VB NET и они будут юзать ОБЩИЙ COM обьект?


Что есть ОБЩИЙ ? Нет вообще никаких ограничений !!!!
Есть некоторые сложности когда Net сб. пользуешь как "COM"
и то не всегда.

Напиши подробнее - обсудим

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 30.11.2004 (Вт) 22:54

ОК
предположим нужно сделать так
есть ГОТОВАЯ прога на VB6 -которая обладает некоторой функциональностью.
Я пытаюсь переписать прогу под NET но в связи с тем, что у меня по всей проге натыканны SAFEARRAY а ARRAY.net это совсем другая песня, то конвертнуть прогу за раз не удастся. поэтому переписываю помодульно.( там много чего не удастся перетащить, так что не только в массивах дело)
Теперь сам подход.
Пытаюсь оформить некоторые модули в виде отдельных прог -сборок.
САМОДОСТАТОЧНЫХ ( т.е. не в виде DLL а в виде отдельных прог.
теперь о задаче.
есть в моей проге некий модуль, результатом которого является 3 строчки.
NameBD NameTable and SQLzapros
ну думаю тут все понятно.
Все это надо для родимого Recordset
А получить это все дело я собираюсь из под модуля написанного на NET
так вот и задачка
Есть прога на VB6
жму кнопку - перескакиваю в прогу NET - что то там выбираю и хочется получить результат в проге VB6
P.S. В связи с тем что так и так переползу под NET то изучать недокоментированные возможности VB6 неохота ( хотя тут есть люди -их хлебом не корми :-) ( точнее охота но не сейчас)
так вот на данный момент есть готовое и простое для понимания решение. Прога на Net пишет результат в реестр и шлет мессадж проге под VB6 типа все готово, читай родимая. Но вопервых это через ж...у а во вторых через ж...у

надеюсь кто нибудь поймет что я тут написАл

seelts
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 21.11.2002 (Чт) 11:24
Откуда: Russia

Сообщение seelts » 30.11.2004 (Вт) 23:19

Может чем поможет:
Preparing Your Visual Basic 6.0 Applications for the Upgrade to Visual Basic .NET
[url=http://www.codenet.ru/progr/vbasic/vb62net.php]Преобразование ваших проектов из VB6 в VB.NET
[/url]
если создать алгоритм, которым сможет пользоваться даже дурак, то только дурак и будет им пользоваться

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 01.12.2004 (Ср) 16:00

Fedorfx писал(а):ОК
надеюсь кто нибудь поймет что я тут написАл


Как вариант пользуй ROT для "общения" VB6 и NET.
Немного непонятны трудности с SAFEARRAY в NET.

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 02.12.2004 (Чт) 16:37

Как вариант пользуй ROT для "общения" VB6 и NET.


А поподробнее можно?
Поиск по форуму примера не дал.
А яндекс дает ссылки на запуск экселя.

P.S. Я правильно понял что можно создать кос обьект в одном процессе и передать его со всеми данными в другой процесс?

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 02.12.2004 (Чт) 16:57

посмотри неплохой пример правда на VB6
переписать его под NET - дело 5 минут
Вложения
Plugin Model.zip
(396.01 Кб) Скачиваний: 20

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 02.12.2004 (Чт) 17:23

Век живи - век учись.
Спасибо.


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

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

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

    TopList