События из COM DLL на VB не обрабатываются в C#

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

События из COM DLL на VB не обрабатываются в C#

Сообщение jangle » 15.05.2017 (Пн) 12:56

Почему-то не ловятся эвенты. Кто виноват и что делать?

Вот та же ситуация: https://www.pcreview.co.uk/threads/hand ... p.1371653/

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

Re: События из COM DLL на VB не обрабатываются в C#

Сообщение Хакер » 15.05.2017 (Пн) 16:31

Ну хоть бы пример выложил, чтобы экспериментировать с минимальными затратами времени на подготовку эксперимента.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 2962
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Москва

Re: События из COM DLL на VB не обрабатываются в C#

Сообщение jangle » 23.05.2017 (Вт) 9:57

Как я понял, проблема взаимодействия C# и VB COM DLL глубже. C# это MTA приложение, а VB - STA.
Поэтому работа из многопоточного кода с STA библиотекой имеет множество подводных камней.

Но вопрос остается, можно ли организовать взаимодействие между C# MTA сервером (консольное, многопоточное, асинхронное приложение)
и VB COM библиотекой. Без разницы (DLL иди EXE сервер).

Размышления на эту тему можно найти тут, тут и здесь

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3712
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: События из COM DLL на VB не обрабатываются в C#

Сообщение Mikle » 23.05.2017 (Вт) 14:25

Я когда-то пробовал обратное - скомпилировал библиотеку на vb.net и задействовал из vb6. Получилось.

Teranas
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 86
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: События из COM DLL на VB не обрабатываются в C#

Сообщение Teranas » 23.05.2017 (Вт) 19:30

Или Вы чё-то мутите или я курнул не то, написать DLL-ку на VB и подключить с к проекту на C#... :roll:
С уважением, Андрей.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3712
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: События из COM DLL на VB не обрабатываются в C#

Сообщение Mikle » 23.05.2017 (Вт) 20:27

Teranas писал(а):написать DLL-ку на VB и подключить с к проекту на C#

Как бы, нет проблем. Но jangle утверждает, что не ловятся события. Надо будет проверить.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 2962
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Москва

Re: События из COM DLL на VB не обрабатываются в C#

Сообщение jangle » 23.05.2017 (Вт) 21:26

Ну причем тут события? Не работает C# MTA и VB DLL

screen.png
screen.png (26.61 Кб) Просмотров: 14

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 2962
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Москва

Re: События из COM DLL на VB не обрабатываются в C#

Сообщение jangle » 23.05.2017 (Вт) 21:56

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

Все VB6 окончательно умер. Даже унаследованный код теперь нельзя использовать в многопоточных приложениях. Мир его праху.


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

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

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

    TopList