È possibile utilizzare una classe VB6 in C#?Utilizzo di una classe VB6 in C#
risposta
penso che si dovrebbe solo essere in grado di aggiungere la libreria che contiene il tipo di VB6 come riferimento nel progetto C#. Visual Studio creerà al volo un assieme di interoperabilità e potrai accedere a tutti i tipi nella libreria VB6 tramite Runtime Callable Wrappers.
Lo strumento che crea il gruppo di interoperabilità è TLBIMP.EXE ed è possibile eseguirlo da soli se si desidera un maggiore controllo sul processo, ad es. se si desidera creare un Primary Interop Assembly che potrebbe essere condiviso da più componenti gestiti.
Certo, devi solo renderlo un oggetto COM.
della DLL creata con VB6 sono sempre (beh, quasi sempre) COM DLL. Per renderli altrimenti, devi passare attraverso molti cerchi di tipo black art. – BobRodes
È possibile utilizzare una DLL VB6 compilata in un programma C# utilizzando COM Interop.
Come @Wayne afferma nel suo post (+1) è assolutamente possibile.
vorrei andare per un riscrittura della classe VB6:
Se avete la sorgente VB6 e il finanziamento, ti consiglierei di riscrivere la classe in C#.
Although VB6 may live forever:
Current support Statement for Visual Basic 6.0
Sono confuso perché le persone votano questo, eppure hanno dato a @sashaeve net -5 una risposta equivalente. –
@Ben Voigt: Potresti indicare la risposta a cui ti riferisci? –
@Kb: è in questa pagina, ma è necessaria molta reputazione per vedere le risposte cancellate. Ha detto: "Devi convertirlo in classe VB.NET e poi [sic] è possibile utilizzare questo codice nella tua applicazione C#". –
- 1. Utilizzo di enumerazione da una classe (C++)
- 2. Una classe VB6 ha un distruttore?
- 3. C# equivalente di VB6 GetObject
- 4. Qual è l'equivalente C# di una dichiarazione get in VB6?
- 5. Err.Number (VB6 versus C#)
- 6. C/C++ 'continuare' equivalente in VB6
- 7. C++: utilizzo di una classe base come implementazione di un'interfaccia
- 8. Chiamare vb6 dll da C#
- 9. VB6 - Definizione di una serie di stringhe
- 10. Utilizzo di: in C++
- 11. Utilizzo di una classe java di Delphi
- 12. Debug del progetto VB6 che chiama una DLL .Net (C#)
- 13. Utilizzo di C++ in Objective C++?
- 14. Utilizzo di una classe di database nella mia classe utente
- 15. Se utilizzo una libreria di tipi (.tlb) in un progetto VB6, devo distribuirlo con l'exe?
- 16. Utilizzo classe in Python
- 17. C# e VB6: come convertire 'con' istruzione in C#?
- 18. Creare un'applicazione VB6 utilizzando una classe in una DLL, quindi sostituire quella DLL dopo la generazione?
- 19. Utilizzo di NSCoding in una sottoclasse di classe personalizzata
- 20. Ripresentazione di una funzione in classe C++
- 21. Istanziazione di una classe python in C#
- 22. Cos'è una "continuazione di classe" Objective-C?
- 23. Utilizzo di Super in una categoria Objective C?
- 24. Escaping di virgolette in una stringa in VB6
- 25. Debug remoto in VB6
- 26. Utilizzo di puntatori intelligenti in una struct o classe
- 27. Utilizzo di una classe personalizzata in un tema Wordpress
- 28. Utilizzo della classe JRuby fornita in una gemma di Clojure
- 29. Metodo statico di una classe statica rispetto al metodo statico di una classe non statica (C#)
- 30. Crea istanza di una classe generica C#
w.r.t "la libreria", è possibile selezionare un EXE ActiveX VB6 o una DLL contenente classi e aggiungerlo come riferimento. L'Assemblea Interop verrà automaticamente creata per te. –
@ bob denny. Non è sempre così facile, l'IDE VS sceglie un'opzione che rende difficile, se non impossibile, lavorare con strutture dati complesse con array. È meglio usare tlbimp se non si hanno input e output molto, molto semplici. – Steve
@Steve Interessante. Puoi dare maggiori dettagli su questo problema? Un link sarebbe utile. – MarkJ