Comunicação entre o VB6 e uma aplicação desenvolvida em C# no VS 2008
309 palavras
2 páginas
Comunicação entre o VB6 e uma aplicação desenvolvida em C# no VS 20081º - Instalar o Microsoft Interop Forms Toolkit 2.1 http://www.microsoft.com/en-us/download/details.aspx?id=3264
2º - De seguida criar um novo projecto no VS 2008 seleccionar Visual C# e do lado dos Templates escolher VB6 Interop UserControl.
3º - Ver se importou a library Microsoft.InteropFormTools
4º - Criar a aplicação ter em atenção em criar propriedades do género: Vamos chamar ao user control Communica. _ Public Property IDEmpresa() As Integer Get Return Convert.ToInt32(lblIDEmpresa.Text) End Get Set(ByVal value As Integer) If value > 0 Then lblIDEmpresa.Text = value.ToString End If End Set End Property
São estas propriedades que vão ser acedidas através da aplicação VB6.
5º Compilar a dll desse projecto
Em seguida acedemos a um projecto em VB6 e nas referências seleccionamos a Microsoft InteropForm Toolkit Library e a nossa dll (deve estar na pasta bin\ debug ou release do projecto.
6º Instanciar a interop toolbox e a nossa dll dim g_InteropToolbox As InteropToolbox Set g_InteropToolbox = New InteropToolbox g_InteropToolbox.Initialize g_InteropToolbox.EventMessenger.RaiseApplicationStartedupEvent
/* A nossa dll */
Dim WithEvents commDll As Communica
Set commDll = New Communica commDll.Show vbModeless commDll.IDEmpresa = 1
E pronto acabamos de aceder à app em C#
Exemplo de código do outro lado: _ Public Sub CallSetForm(ByVal EmpresaID As Integer)
SetForm(EmpresaID)
End Sub
Mas no wrapper (xpto.wrapper.vb) á assim _ Public Overridable Sub CallSetForm(ByVal EmpresaID As Integer) Dim castFormInstance As CommDocTransp.DocTrans = FormInstance castFormInstance.CallSetForm(EmpresaID) End Sub
Do lado do VB6 efectuar o raise à toolbox