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
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.
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.
Hmm j'ai essayé :
Mais c'est pas bon :-\
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 using "c:\maclass.dll"
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.
Il ne faut pas mettre le chemin de l'assembly. Regarde un peu les autres using ; il faut ajouter le namespace.
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)Je l'ai ajouté dans mon projet, mais il ne trouve toujours les classes.
Je détaille un peu plus.
J'ai un fichier .il :
Que j'ai assemblé en CombinePoCHelper.dll
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 } }
J'ai ajouté cette référence.
Puis mis le using :
Afin de pouvoir l'utiliser dans le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2using CombinePoCHelper;
Mais j'ai l'erreur sur le using :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CombineHelper del1 = delegate { };
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.
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
il semble que ce namespace soit vide. La classe CombineHelper semble donc dans le namespace anonyme. Tu devrais arriver à l'utiliser normalement ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .assembly CombinePoCHelper { }
désolé de redemander mais as tu bien ajouté la référence au projet ?
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager