cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
30 mars 2005 à 15:20
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
30 mars 2005 à 18:36
Bonjour,
Quelqun serait t'il comment créer un bitmap à partir d'une ressource ?
ca ferait un truc du genre
Bitmap * a = Bitmap::FromResource(0,"IDB_BITMAP1") ;
ou
Bitmap * a = Bitmap::FromResource(0,MAKEINTRESOURCE("IDB_BITMAP1")) ;
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 30 mars 2005 à 16:33
houlala ca a l'air compliqué,
En faite je veux inclure dans mon executable 200 fichier bmp.
et pour les affichers il faut que je les convertissent en bitmap avec l'id je pense IDB_BITMAP1, IDB_BITMAP2, IDB_BITMAP3 etc......
mais en faite c compliqué parceque l'id "IDB_BITMAP1" jy ais pas accès, ce que tu m'as passé ca doit être ca mais je t'avouerais que je comprends pas tout en faite. Aurais tu un bout de code par hazard ? ou quelque chose de plus eplicite ?
par avance, merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 30 mars 2005 à 17:31
Bah je vois pas trop ce qui est compliqué.
Tu crées une instance de ResourceManager, ici nommée rm.
Le constructeur du ResourceManager prend 2 paramètres : Le nom du
fichier ressource, et l'assembly qui contient cette ressource (dans ton
cas, ton exe, ce que recuperes la ligne
"Assembly.GetExecutingAssembly()"
Ensuite, tu dois utiliser ton instance de ResourceManager pour recuperer les elements de ta ressource
Par le biais de cette ligne :
Bitmap bmp = new Bitmap((Image)rm.GetObject("IDB_BITMAP1
"));
Tu crées un une instance de Bitmap, qui référence l'image qui est dans ta ressource
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 30 mars 2005 à 17:44
en faite je créer mes resources avec l'assistant dans visual studio donc je me retrouve avec l'editeur de ressources pleins d'image bmp. et un fichier resource.h. J'ai essayé ca :
ResourceManager* rm =
new ResourceManager("test1555.exe", Assembly::GetExecutingAssembly());
Bitmap * a =
new Bitmap(
dynamic_cast(rm->GetObject("IDB_BITMAP10"))) ;
mais ca marche pas apparement ce serait le test1555.exe qui deconne, le nom de mon fichier ressources c'est quoi alors ? apparement c'est un fichier..ressource j'ai essayé en mettant app.res mais ca deconne toujours et app tout court deconne aussi..
Je precise que c'est du c++ et que c pareil que le c#, juste remplacer les # par des ->
si tu avais une solution pour eclairé ma lanterne, par avance, merci
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 30 mars 2005 à 17:58
ben j'ai app.rc dans l'editeur de ressource mais apparement c'est pas ca et j'ai Form1.resX j'ai essayé en mettant ca mais tjs le meme message d'erreur :
Une exception non gérée du type 'System.Resources.MissingManifestResourceException' s'est produite dans mscorlib.dll
Informations supplémentaires : Impossible de trouver des ressources appropriées pour la culture spécifiée (ou la culture neutre) de votre assembly. Assurez-vous que "Form1.resX.resources" est correctement incorporé ou lié dans l'assembly "test1555".
baseName: Form1.resX locationInfo: <null> resource file name: Form1.resX.resources assembly: test1555, Version=1.0.1915.30570, Culture=neutral, PublicKeyToken=null
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 30 mars 2005 à 18:07
en faite j'ai comme ca :
ResourceManager* rm =
new ResourceManager("test1555.Form1", Assembly::GetExecutingAssembly());
Bitmap * a =
new Bitmap(
dynamic_cast(rm->GetObject("IDB_BITMAP12"))) ;
ca marche mais il me dit pour la ligne 2 la référence d'objet n'est pas defini a une instance d'objet, je suppose que ca doit être le IDB_BITMAP12 qui deconne pourtant il existe bien
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 30 mars 2005 à 18:31
Bon ok, je viens de regarder Visual c++ .Net, et ca fonctionne pas
pareil qu'en C#. Je ne sais pas comment faire avec les fichier rc.
Pout la méthode que je te donne, il faut que tu crées un Fichier de Ressource d'Assembly (.resx)
Le probleme, c'est que visual studio ne permet pas il me semble, d'inserer des fichiers dans une ressource.
Donc voici une autre méthode :
Dans ton dossier d'installation de Visual Studio, fais une recherche de
"reseditor". C'est un exemple fourni qui est une appli qui permet de
creer et d'editer des ressources.
Compile la si ce n'est deja fait, puis ouvre le. Crée ta ressource,
avec tes fichiers, c'est tout simple a faire. (insere juste une image
pour tester, tu rajouteras toutes les autres apres).
Ensuite, enregistre ta ressource sous le nom de "Images.resx", ajoute
la à ton projet, et fait comme cité précédement. (avec le nom de ta
nouvelle ressource)