Assembly.GetManifestResourceStream

Résolu
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 1 août 2006 à 22:47
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 2 août 2006 à 11:11
Bonjour


voila jai quelques difficultés a comprendre ce code



Public



Shared



Function
LoadExtenderBitmap(

ByVal
name

As



String
)

As
Bitmap




Dim
assembly

As
Assembly =

GetType
(Extender).Assembly




Return



New
Bitmap(assembly.GetManifestResourceStream(name))







End



Function






donc apparemment  assembly recupere le chemin complet vers .exe de application

mais jai du mal a comprendre ce que fait GetManifestResourceStream  et plus particulierement ou l'image va etre cherchée (name vcontient nomimage par exemple : monimage.bmp)

dans mon cas jai une exception de levée : La valeur de 'null' n'est pas valide pour 'stream'.

pourriez vous m'aider ?
merci
++

7 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
2 août 2006 à 02:16
Salut, GetManifestResourceStream  récupère une resources qui est incorporée mais pas compilée au format *.resources comme avec Resgen.exe par exemple ou implicitement avec VS.

Dans la MSDN regarde l'option -resource de vbc.exe.

Comme le dit Dolphin, VS "décore" le nom de la resource, utilise Reflector pour voir son nom exact.
3
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
2 août 2006 à 10:03
Bon ca y est j'ai trouvé
il faut pour l'image definir sa propriété Action de génération à ressource incorporée,

par contre j'ai un pb encore pour trouver image , car jai une exception de levée ( La valeur de 'null' n'est pas valide pour 'stream'.)
3
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
2 août 2006 à 11:11
Cette fois cest bon jai trouvé
comme il est indiqué ds un article de c2i
c'est dans le chemin vers mon image que ca clochait (enfin c logique)

Dim asm as System.Reflexion.Assembly = System.Reflection.Assembly.GetExecutingAssembly
Dim m_bitmap as Bitmap = new Bitmap(asm.GetManifestResourceStream("Namespace_de_l_assembly.nom_du_fichier"))

NB : si votre image se trouve dans un répertoire de votre solution, le paramètre du Stream est : Namespace_de_l_assembly.nom_du_rep.nom_du_fichier

enfin bon cette methode (image en ressource assembly) ne me semble pas super de prime abord mais bon elle a l'air quand mm pas mal utilisée

++
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 août 2006 à 23:03
Salut,

je peux pas vraiment te dire mais regarde ce lien, il a l'air bien documenté !

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
1 août 2006 à 23:34
GetManifestResourceStream attend (Namespace_de_lassembly.name_fichier). C'est quoi que tu passes à LoadExtenderBitmap comme 'name' ?
Réfléchis là-dessus. Je suis sùr que tu vas trouver où ça bugge.
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
2 août 2006 à 09:19
Merci Lutinore pour tes explications,
j'avoue que j'ai encore du mal a comprendre mais cela m'a fait avancé

++
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
2 août 2006 à 09:35
en fait donc apparemment on incorpore des images en tant que ressources a assembly (.exe de application) que en suite on recupere avec GetManifestResourceStream 

mais comment fait on pour incorporer une image a assembly ?
(faut il utiliser un utilitaire ?? ou bien faire une refernece enfin je sais pas )

merci mortalino pour le bon lien 
Dolphin en fait c'est le nom de l'image mais c'est sur qu'il ne risque pas de la trouver par magie looll vu que je ne l'ai pas incorporer a assembly ( en fait j'avais recuperer une source qui utilisait cette méthode pour recuperer ses images et jai essayer de refaire mon propre exemple pour mieux comprendre lol)

++
0
Rejoignez-nous