2015-03-04 1 views
2

Nous avons l'application VB6 héritée et nous essayons de déplacer cela en C#. Comme première phase, nous avons créé Formulaire en C# (avec des contrôles similaires) et nous voulons que cette application C# communique avec le formulaire VB6 pour que lorsque l'utilisateur clique sur le formulaire, il déclenche un clic sur le bouton VB6. être caché) Ils partagent tous les deux la même base de données, pourrait-on me donner une idée de la façon dont nous pouvons y parvenir ou y a-t-il un autre moyen? MerciCommunication n/b C# et vb6 App

+0

donc j'ai quelques questions, mais vais essayer de les garder bref et simple .. 1. le code existant VB6 peut être converti en C# ou VB .NET 2. Si vous pouvez convertir le code en VB.NET, vous pouvez toujours référencer les assemblys VB.Net en ajoutant 'using Microsoft.VisualBasic' à l'en-tête de la classe C# ... Si ce n'est pas une option alors je chercherais comment exporter des fonctions dll ou google comment appeler vb6 dll en C# – MethodMan

+1

duplication possible de [programme de mise à niveau pour convertir l'application vb6 en C#] (http://stackoverflow.com/questions/8192403/upgrade-program-for-converting-vb6 -app-to-c-sharp) – WorkSmarter

+3

Lorsque vous essayez de prendre votre retraite l'application VB6, pourquoi le garder et essayer de le contrôler? S'il existe une logique métier complexe, vous pouvez la déplacer vers un assembly VB.net distinct, puis la référencer depuis votre application C#. Le déplacement du code de VB6 vers VB.net est largement documenté et peut, selon le code original, être un processus en ligne directe. Ma suggestion est de soit vraiment retirer l'application/le jeter, soit le garder, mais ne pas commencer à le mélanger ... –

Répondre

1

Cela peut être une bonne idée si le code VB6 est trop grand pour réécrire complètement à partir de zéro. Vous pouvez diviser le VB6 en DLL séparées, puis remplacer les DLL fragmentées par des DLL C# en utilisant COM-interop afin que VB6 et C# se parlent.

Par exemple jeter un oeil à quelques-unes des réponses aux this question