2010-02-13 13 views

Odpowiedz

12

Myślę, że powinniśmy po prostu być w stanie dodać bibliotekę zawierającą typ VB6 jako punkt odniesienia w projekcie C#. Visual Studio utworzy zespół Interop w locie, a otrzymasz dostęp do wszystkich typów w bibliotece VB6 poprzez Runtime Callable Wrappers.

Narzędziem tworzącym zespół Interop jest TLBIMP.EXE, i możesz uruchomić to samodzielnie, jeśli chcesz mieć większą kontrolę nad procesem, np. jeśli chcesz utworzyć Primary Interop Assembly, który może być współużytkowany przez wiele zarządzanych komponentów.

+0

w.r.t "biblioteka", można przejść do pliku VB6 ActiveX EXE lub biblioteki DLL zawierającej klasy i dodać ją jako odniesienie. Zgromadzenie Interop zostanie stworzone dla ciebie automatycznie. –

+0

@ bob denny. Nie zawsze jest to łatwe, VS IDE wybiera opcję, która sprawia, że ​​praca z złożonymi strukturami danych, które mają tablice, jest trudna, a nawet niemożliwa. Lepiej używać tlbimp, chyba że masz bardzo, bardzo proste wejścia i wyjścia. – Steve

+1

@Steve Interesujące. Czy możesz podać więcej szczegółów na temat tego problemu? Przydatny byłby link. – MarkJ

0

Oczywiście wystarczy, że będzie to obiekt COM.

+0

DLL z VB6 tworzone są zawsze (no prawie zawsze) COM DLL. Aby zrobić je inaczej, musisz przejść przez wiele obręczy typu art black. – BobRodes

3

Jak @ Waay stwierdza w swoim poście (+1) jest to absolutnie możliwe.

chciałbym pójść na przepisanie swojej klasie VB6:
Jeśli masz źródło VB6 i finansowania, polecam Ci przepisać klasy w języku C#.
Although VB6 may live forever:
Current support Statement for Visual Basic 6.0

+0

Jestem zdezorientowany, dlaczego ludzie głosują na to, ale dali @sashaeve netto -5 dla równoważnej odpowiedzi. –

+0

@Ben Voigt: Czy możesz wskazać odpowiedź, na którą się powołujesz? –

+0

@Kb: Jest na tej stronie, ale potrzebujesz wielu reputacji, aby zobaczyć usunięte odpowiedzi. Powiedział: "Musisz przekonwertować go na klasę VB.NET, a następnie [sic] możliwe jest użycie tego kodu w twojej aplikacji C#". –

Powiązane problemy