Est-il possible d'utiliser une classe VB6 en C#?Utilisation d'une classe VB6 en C#
Répondre
Je pense que vous devriez juste pouvoir ajouter la bibliothèque qui contient le type de VB6 comme référence dans votre projet C#. Visual Studio créera un assembly interop à la volée, et vous aurez accès à tous les types dans la bibliothèque VB6 via Runtime Callable Wrappers.
L'outil qui crée l'assemblage interop est TLBIMP.EXE, et vous pouvez l'exécuter vous-même si vous voulez plus de contrôle sur le processus, par ex. si vous souhaitez créer un Primary Interop Assembly pouvant être partagé par plusieurs composants gérés.
Bien sûr, vous avez juste besoin d'en faire un objet COM.
DLL créée avec VB6 sont toujours (bien, presque toujours) COM DLL. Pour les rendre autrement, vous devez passer par beaucoup de cerceaux de type art noir. – BobRodes
Vous pouvez utiliser une DLL VB6 compilée dans un programme C# à l'aide de COM Interop.
Comme l'indique @Wayne dans son article (+1), c'est absolument possible.
Je pencherais pour un rewrite de votre classe VB6:
Si vous avez la source VB6 et le financement, je vous recommande de réécrire la classe en C#.
Although VB6 may live forever:
Current support Statement for Visual Basic 6.0
Je suis confus pourquoi les gens votent ceci, pourtant donné @sashaeve net -5 pour une réponse équivalente. –
@Ben Voigt: Pourriez-vous pointer vers la réponse à laquelle vous faites référence? –
@Kb: C'est sur cette page, mais vous avez besoin de beaucoup de réputation pour voir les réponses supprimées. Il a dit: "Vous devez le convertir en classe VB.NET et que [sic] il est possible d'utiliser ce code dans votre application C#". –
- 1. Utilisation d'une classe C++ en C#
- 2. convertir C++ en vb6
- 3. Utilisation Generics en C# - Appel classe générique d'une classe générique
- 4. Utilisation de SQLITE avec VB6
- 5. Err.Number (VB6 contre C#)
- 6. Utilisation d'assemblages C# à partir du code VB6. Quelques problèmes
- 7. Utilisation invalide de la propriété dans vb6
- 8. WINAPI VB6/C++ à C#
- 9. Equivalent (fonctionnalité) d'ObjPtr de VB6 en C#?
- 10. C++ problème d'interface VB6
- 11. Utilisation de WCF DLL avec VB6?
- 12. Utilisation de VB6 + WSH avec compression Windows
- 13. C# & VB6: Comment convertir une instruction 'with' en C#?
- 14. Utilisation d'enums en C?
- 15. C# pour VB6 événements COM (« objet ou classe ne prend pas en charge l'ensemble des événements »)
- 16. VB6 à C# que signifie ce code VB6?
- 17. Données binaires Vb6 à C#
- 18. Utilisation d'une DLL C++ en C#
- 19. C# et com pour vb6
- 20. Utilisation de NAnt et Ivy pour construire un projet VB6
- 21. Utilisation de classes non documentées en C++
- 22. Classe d'images en C#
- 23. Protected classe en C#
- 24. Classe d'interface en C#
- 25. Classe SendKeys en C#
- 26. Classe abstraite en C++
- 27. AllocHGlobal équivalent en VB6
- 28. parallèle en vb6 -?
- 29. Limite d'affichage en vb6
- 30. Utilisation d'une fonction de membre de classe C++ en tant que fonction de rappel C
w.r.t "la bibliothèque", vous pouvez accéder à un fichier EXE ActiveX VB6 ou à une DLL de classe et l'ajouter comme référence. L'assemblage interop sera automatiquement créé pour vous. –
@ bob denny. Ce n'est pas toujours facile, l'IDE VS choisit une option qui rend difficile, voire impossible, le travail avec des structures de données complexes ayant des matrices. Il est préférable d'utiliser tlbimp à moins d'avoir des entrées et des sorties très simples. – Steve
@Steve Intéressant. Pouvez-vous donner plus de détails sur ce problème? Un lien serait utile. – MarkJ