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# Discussion :

Communiquer en .NET avec une dll C# exposée COM


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut Communiquer en .NET avec une dll C# exposée COM
    Bonjour,

    J'ai créé une dll en C# exposée COM. Cette dll communique avec une vraie dll COM.

    Les types de la dll C# ont été exportés vers un fichier TLB pour réimporter les type dans DELPHI
    Les types ont été inscrits via regasm.
    Jusque là tout va bien

    Afin de résoudre certains problèmes, je souhaite utiliser le même process que sous DELPHI, mais dans Visual Studio, cad réimporter les types et utiliser la dll C# dont les types ont été exposés en COM.

    Le problème : je ne parviens pas à recréer les types via tlmimp : La bibliothèque de types a été exportée d'un assembly CLD et ne peut être de nouveau importée en tant qu'assembly CLR

    En résumé, je veux communiquer en .net avec une dll c# exposée COM mais à travers COM.

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Et en ajoutant directement ta DLL C#/Com dans les références de ton projet VS de "test" ?

    C'est ce que nous faisons pour des DLL COM mais écrites en VB6.

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut
    Le tlb a été importé dans delphi afin de lui donner les types contenus dans cette dll c# COM. Les types sont déclarés dans la base de registre via regasm.

    Si j'ajoute la dll c# COM à mon projet, .net va directement lire les types sans devoir faire appel aux clés de la base de registre.

  4. #4
    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 441
    Points
    4 441
    Par défaut
    bonjour

    Il n'est pas possible de referencer un assembly dll c# expose à com comme un dll.com natif via son fichier d'interface de types(.tlb) car c'est un "faux server com"(interop.dll)...
    Walkthrough: Creating COM Objects with Visual Basic
    See Also Send Feedback
    Although you can also expose a class created in Visual Basic as a COM object for unmanaged code to use, it is not a true COM object and cannot be used by Visual Basic. For more information, see COM Interoperability in .NET Framework Applications.
    Ce qui valable pour toute l'API (l'outil TypeLib Importer est utilise en vb comme en c# à l'interne pour generer les wrappers MyLibiInterop.dll )
    Cet avertissemment ,bizarrement, n'existe pas dans la rubrique similaire de c#....
    Ce qui recommende par les mentors microsoft c'est de referencer la .dll net d'origine simplement..
    Si c'est pour communiquer avec Delphi via c#
    -il suffit de rajouter à ta dl.net c# (assembly .net) un class [comvisible(false)]
    -qui fait le "pont" avec les class exposes à Com [comvisible(true)]
    -ensuite referencer ta dll.net (assembly) normalement...
    bon code...

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/01/2009, 12h00
  2. Réponses: 0
    Dernier message: 04/08/2008, 17h05
  3. [VB.net] Probleme avec une dll pour l'enregistrer
    Par Diablo_22 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/08/2006, 20h41
  4. Communiquer avec une DLL depuis un driver .SYS
    Par barthelv dans le forum Windows
    Réponses: 17
    Dernier message: 03/04/2006, 10h43
  5. [VB.NET] Problem de récupération de variable avec une DLL
    Par ludovic85 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 19/01/2005, 11h37

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