2010-02-13 18 views

risposta

12

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.

+0

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. –

+0

@ 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

+1

@Steve Interessante. Puoi dare maggiori dettagli su questo problema? Un link sarebbe utile. – MarkJ

0

Certo, devi solo renderlo un oggetto COM.

+0

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

3

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

+0

Sono confuso perché le persone votano questo, eppure hanno dato a @sashaeve net -5 una risposta equivalente. –

+0

@Ben Voigt: Potresti indicare la risposta a cui ti riferisci? –

+0

@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#". –

Problemi correlati