Czy można używać klasy VB6 w języku C#?Używanie klasy VB6 w języku C#
Odpowiedz
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.
Oczywiście wystarczy, że będzie to obiekt COM.
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
Możesz użyć skompilowanej biblioteki dll VB6 w programie C#, używając COM Interop.
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
Jestem zdezorientowany, dlaczego ludzie głosują na to, ale dali @sashaeve netto -5 dla równoważnej odpowiedzi. –
@Ben Voigt: Czy możesz wskazać odpowiedź, na którą się powołujesz? –
@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#". –
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. –
@ 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
@Steve Interesujące. Czy możesz podać więcej szczegółów na temat tego problemu? Przydatny byłby link. – MarkJ