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

Visual Studio Discussion :

Inclusion fichier IL


Sujet :

Visual Studio

  1. #1
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut Inclusion fichier IL
    Bonjour,

    Dans mon projet j'utilise une classe que j'ai dans un autre fichier : un fichier .il contenant le code de la classe en MSIL.

    Comment inclure ce fichier dans mon projet afin de pouvoir utiliser ma classe ?

    Merci
    Sorry
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Citation Envoyé par sorry60 Voir le message
    Bonjour,

    Dans mon projet j'utilise une classe que j'ai dans un autre fichier : un fichier .il contenant le code de la classe en MSIL.

    Comment inclure ce fichier dans mon projet afin de pouvoir utiliser ma classe ?

    Merci
    Sorry
    Tu veux dire une assembly ?
    Si ta classe est compilée, elle est dans une assembly que tu peux référencer dans ton projet par la méthode classique.

  3. #3
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Oui je l'ai compilé pour avoir une dll.
    Je l'ai ajouté dans mon projet, mais il ne trouve toujours les classes.

    Je suppose qu'il faut que je rajoute aussi le "using", mais comment lui passer un chemin vers ma dll ? (désolé, je viens du C donc je suis un peu perdu)
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Citation Envoyé par sorry60 Voir le message
    Oui je l'ai compilé pour avoir une dll.
    Je l'ai ajouté dans mon projet, mais il ne trouve toujours les classes.

    Je suppose qu'il faut que je rajoute aussi le "using", mais comment lui passer un chemin vers ma dll ? (désolé, je viens du C donc je suis un peu perdu)
    ah ok.
    Oui il faut un using. Soit tu le rajoutes par toi-même en haut du fichier en question, soit tu écrit le type de ta classe, puis tu fais un clic droit et résoudre : il ajoutera alors en auto le namespace.

    ps : attention à la casse !

  5. #5
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Hmm j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using "c:\maclass.dll"
    Mais c'est pas bon :-\

    Et je ne trouve pas le "résoudre"
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Il ne faut pas mettre le chemin de l'assembly. Regarde un peu les autres using ; il faut ajouter le namespace.

    Je l'ai ajouté dans mon projet, mais il ne trouve toujours les classes.
    as tu ajouté la référence de l'assembly en question dans ton nouveau projet ? via le clic droit sur références, puis ajouter ? (il ne suffit pas de mettre l'assembly dans le bin pour l'utiliser)

  7. #7
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Je détaille un peu plus.

    J'ai un fichier .il :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    .assembly extern mscorlib
    {
    }
    .assembly CombinePoCHelper
    {
    }
    .module CombinePoCHelper.dll
     
    .class public auto ansi sealed CombineHelper
           extends [mscorlib]System.MulticastDelegate
    {
      .method public hidebysig specialname rtspecialname 
              instance void  .ctor(object 'object',
                                   native int 'method') runtime managed
      {
      }
     
      .method public hidebysig newslot virtual 
              instance void  Invoke(object obj) runtime managed
      {
      }
     
      .method public static class [mscorlib]System.Delegate CombineHack(class CombineHelper d1, class [mscorlib]System.MulticastDelegate d2) cil managed
      {
        ldarg.0
        ldarg.1
        callvirt instance class [mscorlib]System.Delegate [mscorlib]System.Delegate::CombineImpl(class [mscorlib]System.Delegate d2)
        ret
      }
    }
    Que j'ai assemblé en CombinePoCHelper.dll

    J'ai ajouté cette référence.
    Puis mis le using :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using CombinePoCHelper;
    Afin de pouvoir l'utiliser dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CombineHelper del1 = delegate { };
    Mais j'ai l'erreur sur le using :
    Error 1 The type or namespace name 'CombinePoCHelper' could not be found (are you missing a using directive or an assembly reference?)
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    J'avoue ne pas faire IL séparé. Pourquoi as tu besoin de précéder comme cela et pas via une librairie de classe ?

    Un truc qui me surprend dans ton code, est ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .assembly CombinePoCHelper
    {
    }
    il semble que ce namespace soit vide. La classe CombineHelper semble donc dans le namespace anonyme. Tu devrais arriver à l'utiliser normalement ...

    désolé de redemander mais as tu bien ajouté la référence au projet ?

  9. #9
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut
    Non j'ai laissé tomber le IL séparé, je l'ai compilé avec ILASM.exe en dll, et j'ai bien référencé la dll au projet.

    Mais il ne la trouve quand même pas
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Citation Envoyé par sorry60 Voir le message
    Non j'ai laissé tomber le IL séparé, je l'ai compilé avec ILASM.exe en dll, et j'ai bien référencé la dll au projet.

    Mais il ne la trouve quand même pas
    je sais plus quoi de dire. Tu as une classe publique dont l'assembly est bien référencée dans ton projet. Il n'y a pas plus simple ...

Discussions similaires

  1. [PHPExcel] Problème inclusion fichiers
    Par darrrfeet dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 17/07/2013, 16h31
  2. Inclusion fichier properties
    Par inanc dans le forum ANT
    Réponses: 5
    Dernier message: 10/05/2011, 14h14
  3. Warning dans inclusion fichier xpm
    Par ddaime dans le forum wxWidgets
    Réponses: 6
    Dernier message: 12/09/2008, 11h27
  4. Inclusion fichier fonction navigateur
    Par ac/dc dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 15/03/2008, 10h12
  5. Problème d'inclusions fichier inl
    Par Bakura dans le forum C++
    Réponses: 5
    Dernier message: 02/12/2007, 10h03

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