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

C++/CLI Discussion :

[COM InterOp][.NET/VB6] Comment est géré wrapper de wrapper?


Sujet :

C++/CLI

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 59
    Par d�faut [COM InterOp][.NET/VB6] Comment est géré wrapper de wrapper?
    Salut !

    J'ai une appli VB6 qui communique avec une DLL .NET.
    L'appli VB6 voit la DLL .NET en tant que composant COM.

    La DLL contient :
    - classe A
    - classe B
    La classe A contient une m�thode "faireOperation" qui prend en argument une instance de la classe B.
    C�t� VB, je fais donc:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    Dim a as new A
    Dim b as new B
    a.faireOperation(b)
    A la ligne 1, VB cr�e un wrapper sur l'instance de la classe A.
    A la ligne 2, VB cr�e un wrapper sur l'instance de la classe B.
    A la ligne 3, il passe au wrapper de "a" le wrapper de "b".
    Ma question est:
    Lors de l'�x�cution dans la CLR de la m�thode "faireOperation", dotNet va-t-il voir b comme:
    1/ un wrapper d'une instance de B ?
    2/ un wrapper de wrapper d'une instance de B ?
    3/ une instance de B ? (Il faudrait alors qu'il soit carr�ment intelligent !)

    En fonction de la r�ponse (par exemple si c'est la 1 ou la 2), je vais modifier ma m�thode faireOperation pour �viter la perte de perfs due aux wrappers (par exemple en g�rant c�t� .NET une liste statique des instances de B, et en ne faisant communiquer VB avec .NET qu'avec des ids d'instance).

    Merci d'avance aux gens qui seront assez pointus pour pouvoir me r�pondre, voire me donner une id�e sur la fa�on de tester �a ! ;-)

    @+

  2. #2
    Expert confirm�
    Avatar de bidou
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 58
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par d�faut
    normalement comme une instance de B

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 59
    Par d�faut
    Ok, merci ! C'est d�j� une bonne nouvelle !

    Mais sais-tu o� trouver la confirmation de cela ? Histoire de pouvoir me justifier face mes coll�gues... J'ai rien trouv� dans les docs (<ironie> faut dire qu'elles sont tellement bien faites </ironie> )

  4. #4
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Citation Envoy� par jyl2002
    Ok, merci ! C'est d�j� une bonne nouvelle !

    Mais sais-tu o� trouver la confirmation de cela ? Histoire de pouvoir me justifier face mes coll�gues... J'ai rien trouv� dans les docs (<ironie> faut dire qu'elles sont tellement bien faites </ironie> )
    Faut peut �tre fouill� un peu
    http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconadvancedcominterop.asp
    :

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 59
    Par d�faut
    H� bien mes chers amis ce n'est pas faute d'avoir fouill� !

    Et � la lecture de la doc sur les wrappers COM, je n'ai toujours pas trouv� d'argument pour pouvoir affirmer que .NET arrive � faire le mapping entre CCW et RCW : mon code VB expose � ma m�thode .NET un objet qu'il connait lui-m�me en tant qu'objet COM => comment �tre s�r que ma m�thode .NET va bien recevoir l'objet en tant qu'objet .NET et non en tant qu'objet COM ?

  6. #6
    Expert confirm�
    Avatar de bidou
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 58
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par d�faut
    Parce que le Wrapper fonctionne sur le m�me principe que DCOM.
    D�s lors � l'instanciation de b par VB6 il va r�cup�rer une repr�sentation de l'interface INew de l'objet b effectivement cr�� dans DotNet, et c'est cette repr�sentation qu'il va renvoyer dans a.faireOperation(b). Or cette repr�sentation est directement la r�f�rence INew de l'objet b.

    Le seul truc qui peut �tre un peu tordu dans ce type d'architecture c'est que tu vas cr�er deux r�f�rences COM qu'il faudra d�truire, aussi faut il voir s'il n'y a pas int�r�t � inclure a dans b.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 59
    Par d�faut
    Ok. Merci bien pour l'info !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. WCF Com Interop via VB6
    Par Dnx dans le forum Windows Communication Foundation
    R�ponses: 0
    Dernier message: 09/07/2012, 09h47
  2. [C#] Comment deployer un COM Interop ?
    Par loverdose dans le forum C#
    R�ponses: 12
    Dernier message: 27/04/2012, 12h01
  3. Asp.net & Com+ ecrite en VB6
    Par kaygee dans le forum ASP.NET
    R�ponses: 0
    Dernier message: 27/02/2009, 14h52
  4. [VB6] comment savoir si la commande shell est terminée ?
    Par ghyscharlotte dans le forum VB 6 et ant�rieur
    R�ponses: 5
    Dernier message: 30/07/2003, 19h12
  5. Comment est financ� developpez.com ?
    Par BuG dans le forum Evolutions du club
    R�ponses: 9
    Dernier message: 19/06/2003, 11h03

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