IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Communication entre une application VB.Net et une application VB6


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Communication entre une application VB.Net et une application VB6
    Bonjour,

    Pourriez vous m'indiquer quelques pistes pour faire communiquer une application VB.Net et une application VB6 svp.

    En gros, l'application VB.Net doit demander à l'application VB6 d'afficher des données graphiques, la fonction VB6 en charge de faire cela étant à l'heure actuelle bien trop complexe pour la porter en VB.Net ...

    Merci d'avance pour vos conseils éclairés,

    Cordialement,

    Egurkari

    PS : peut-être faut-il que je poste également ce message dans le forum VB6 ...

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    as tu au moins googlé ??
    parce qu'il y a des tas de réponse ...

    il y a d'ailleurs une dll pour faire ca qui a déjà circulé sur ce forum
    sinon par tcp/ip

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    as tu au moins googlé ??
    parce qu'il y a des tas de réponse ...

    il y a d'ailleurs une dll pour faire ca qui a déjà circulé sur ce forum
    sinon par tcp/ip
    Oui Google a déjà été parcouru ... et bien sur un tas de réponses trouvées : sockets, remoting, WCF, SendMessage ... Malheureusement mes compétences dans la communication inter-processus étant très limitée, je n'arrive pas à y voir clair !

    Tu parles d'une dll ? Tu peux me pointer l'article stp ?

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    si je l'avais retrouvé j'aurais mis un lien

    j'ai trouvé ca qui convient peut etre :
    http://www.codeproject.com/Articles/...ication-via-Wi

    sinon par tcp/ip c'est juste des échanges d'octets (ou de string) ca ne sert pas qu'à faire des échanges inter processus, c'est très généraliste
    l'une des 2 applis doit écouter sur un port
    l'autre appli se connecte sur localhost:LePortChoisit
    et après il suffit de créer un protocole de communication (genre envoyer F001 doit ouvrir telle fenetre sur l'autre appli)

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    si je l'avais retrouvé j'aurais mis un lien

    j'ai trouvé ca qui convient peut etre :
    http://www.codeproject.com/Articles/...ication-via-Wi
    Je regarde ça, cela semble coller à mon cas ...

    Citation Envoyé par Pol63 Voir le message
    sinon par tcp/ip c'est juste des échanges d'octets (ou de string) ca ne sert pas qu'à faire des échanges inter processus, c'est très généraliste
    l'une des 2 applis doit écouter sur un port
    l'autre appli se connecte sur localhost:LePortChoisit
    et après il suffit de créer un protocole de communication (genre envoyer F001 doit ouvrir telle fenetre sur l'autre appli)
    Par TCP, c'est alors quelle techno ? Sockets ?

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    Citation Envoyé par Egurkari Voir le message
    Par TCP, c'est alors quelle techno ? Sockets ?
    en vb6 c'est winsock et en .net c'est tcpclient/tcplistener selon le cas et ca encapsule la classe socket

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Voici deux discussions traitant l'utilisation d'une dll vb6 avec un progrmme vb.net.
    ici (détail à partir du post 8) et (détail à partir du post 13).

    Il y a aussi un tuto traitant du sujet sur DVP, mais je ne l'ai pas retrouvé.

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu peux aussi jeter un œil sur cet article microsoftien conçu et écrit en français. Ce n'est pas vraiment spécifique à ta question, mais cela donne un canevas des procédures à effectuer. Il y a aussi un lien pour télécharger un exemple. (J'espère qu'il fonctionne toujours.)



    http://msdn.microsoft.com/fr-fr/library/bb727303.aspx

  9. #9
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut
    bonjour

    Une possibilite si tu as le code source bien sur c'est
    1/ Recompiler tel quel en projet ActiveX EXE vb6...
    2/ Les datas "transmis" par vb.net seront exposes en tant que props
    dans ton projet reconfigure en ActiveX EXE vb6

    3/ Rajouter un module class Util à ton projet
    3/ class Util doit exposer :
    -un procedure Publi Start() dont le seul role sera le point d'entree de ton projet...
    -un procedure Public SetData(param1,param2,param3 ,etc) dont le role sera de recuperer les donnees datas depuis vb.net...

    code vb6 du form de demarrage(frmActiveX) de ton projet ActiveX EXE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Private mvardata1 As Integer 'local copy
    Private mvardata2 As Double 'local copy
    Private mvardata3 As String 'local copy
    Private Sub Command1_Click()
       Text1.Text = data1
       Text2.Text = data2
      Text3.Text = data3
    End Sub
    Public Property Let data3(ByVal vData As String)
    'used when assigning an Object to the property, on the left side of a Set statement.
    'Syntax: Set x.Data3 = Form1
         mvardata3 = vData
    End Property
    Public Property Get data3() As String
    'used when retrieving value of a property, on the right side of an assignment.
    'Syntax: Debug.Print X.Data3
              data3 = mvardata3
     
    End Property
    code .vb6 du class Util à rajouter à ce projet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Private frm As frmActiveX
    Public Sub Start()
    Set frm = New frmActiveX
    frm.Show
    End Sub
     
    Public Sub SetDatas(dt2 As Double, dt3 As String, dt1 As Long)
    frm.data1 = dt1
    frm.data2 = dt2
    frm.data3 = dt3
    End Sub
    Le nom du projet ActiveX Exe etant denomme par ActiveXUTIL.exe(page de proprietes du projet vb6),apres ajout de sa reference dans le projet vb.net sera utiliser avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Imports ActiveXUTIL
     
    Public Class Form1
        Private UT As Util
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            UT = New Util
            UT.Start()
            UT.SetDatas(15.45, "alpha", 17)
     
        End Sub
     
     
     
     
    End Class
    Evidemment il faut etre attentif au marshalling des types...
    Tu peux manipuler tous les objets du projet ActiveX EXE à condition d'avoir une ref sur eux (prop) dans le "component" class Util....
    bon code....

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/06/2010, 08h53
  2. Réponses: 4
    Dernier message: 21/09/2009, 22h56
  3. Integrer une application Asp.Net dans une Webpart
    Par AntonioMath dans le forum ASP.NET
    Réponses: 0
    Dernier message: 28/04/2009, 02h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo