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

Dotnet Discussion :

Utilisation DLL C# dans d'autres applis


Sujet :

Dotnet

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 26
    Points
    26
    Par défaut Utilisation DLL C# dans d'autres applis
    bonjour,
    J'ai développé une DLL en c# sous VS2005 que je souhaite rendre accessible en COM pour l'utiliser à partir d'autres applications.
    Ma Dll a un nom fort, elle est signée, et j'ai mis dans les options la visibilité COM.
    Quand j'utilise ma DLL a partir d'une autre appli tout fonctionne mais je dois forcement avoir cette DLL ( et toutes ces dépendances ) dans le même répertoire que mon autre appli.
    Je pensais que la rendre visible COM me permettais de ne l'avoir forcement dans le même répertoire.
    Me serais-je fais des idées ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Cette "appli" est dans quel langage ?

    Où voudrais-tu mettre cette dll si ce n'est dans le répertoire de ton appli ? Dans le GAC ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 26
    Points
    26
    Par défaut
    Pas de langage précis, le but étant de mettre a disposition un petit utilitaire que d'autre logiciel pourront lancer dans leur code. J'ai fais un projet de test sous c++ builder, un sous vb6 et sous vs2005 en c#.
    Mes trois projets arrivent a utiliser ma dll utilitaire.
    Mon souci est que je dois copier toutes les dll de mon utilitaire à la base de mes projets. Je pensais que d'enregistrer ma dll qui exporte les fonctions avec regasm me permettrai d'y accéder de n'importe ou.
    Ce n'est pas le cas ? Il n'y a aucun moyen de faire ça ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Quand j'ajoute, depuis Visual Studio, une librairie COM en référence à un projet, je constate qu'une librairie est générée dans mon bin.
    Il me semble que son rôle est d'encapsuler les objets COM en objets managés (.NET).

    Donc, cette librairie est indispensable dans ce cas. Mais je n'en sais pas bcp plus sur la gestion d'assemblies COM, je ne pourrais pas t'aider plus.

  5. #5
    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 regasm et gacutil
    bonjour,
    1/si tu a mis registrer for com interop quand tu genere ton projet regasm (behind the scene execute regasm tonfichier.dll l'inscrit au registre et genere sur ta machine un fichier tonfichier.tlb (library de type).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'voici derriere la scene ce qu'il il excute . il cree les entrees de registre et cree un fichier biblio de type .tlb 
    regasm  tonfichier.dll /tlb: tonfichier.tlb
    Pour en avoir le coeur "net" va dans ajouter reference->com et tu trouveras tonFichier avec extension tlb.
    Ce qui veut dire qu'un programmeur com(vba ou vb6 ou delphi 5) pourra referencer ta dll et acceder dans l'intellisense ancienne à tout ce qu'elle contient sans connaitre le chemin(il est inscrit au registre).

    2/ A l'installation
    Creer avec regasm tonfichier.reg qui doit etre executer pour inscrire l'application dans le registre lors de l'installation de l'application(le tlb tu le recupere et distribue avec ton app à partir du repertoire release) .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'cree un fichier .reg 
    regasm myTest.dll /regfile:myTest.reg
    inscription lors de l'installation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'executer l'inscription silent(sans le message voulez vous inscrire les info aux
     'registre
    regedit.exe /s chemin fichier .reg
    'ca peut se faire avec startprocess et arguments de ligne commande...
    cette inscription rend "visible" ta dll dans le panneau com .
    ce qui est le but recherche....
    bon code.....

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/02/2013, 10h47
  2. Réponses: 1
    Dernier message: 24/03/2007, 18h50
  3. utiliser dll c++ dans delphi
    Par delphino2006 dans le forum Delphi
    Réponses: 4
    Dernier message: 07/11/2006, 20h19
  4. detecter l'ouverture d'un opendialog dans une autre appli
    Par youps3 dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 07/04/2006, 20h11
  5. [VB6] Utiliser dll .Net dans VB6
    Par sokette dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 31/03/2005, 14h34

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