Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
954 connectés 

  FORUM HardWare.fr
  Programmation

  [Visual C++] Mettre un .bmp dans l'exe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Visual C++] Mettre un .bmp dans l'exe

n°91190
antsite
Je me souviens
Posté le 20-01-2002 à 16:08:05  profilanswer
 

salut
je voudrais mettre un .bmp dans l'exe au lieu de faire référence à un autre fichier externe classique. J'ai donc créé une nouvelle ressource Bitmap et j'ai mis le bitmap dedans. VC++ génère un .h et .rc, tout va bien ça compile. Seulement, je souhaite indiquer à une fonction DisplayBMP() non pas "c:\\toto.bmp", mais la ressource. Je fais donc MAKEINTRESOURCE(IDB_BITMAP1), ça compile, mais ça marche pas, le bitmap n'est pas afficher ! Help !

mood
Publicité
Posté le 20-01-2002 à 16:08:05  profilanswer
 

n°91214
Ace17
Posté le 20-01-2002 à 16:48:18  profilanswer
 

D'ou elle sort cette fonction DisplayBMP?

n°91216
antsite
Je me souviens
Posté le 20-01-2002 à 16:57:06  profilanswer
 

Non non c juste un exemple ! Une fonction qui affiche un bmp et qui prend comme param un chemin d'accès ! Peut on changer ce chemin d'accès en MAKINTRESOURCE ?

n°91217
chrisbk
-
Posté le 20-01-2002 à 16:58:34  profilanswer
 

un fin LoadBitmap(..) + bitmap stocké dans les resources peut etre ?

n°91218
Ace17
Posté le 20-01-2002 à 16:59:49  profilanswer
 

Ben ouais moi j'ai toujours appris a charger a partir des ressources; La révélation ca a été quand j'ai su comment charger des fichiers externes!

n°91219
antsite
Je me souviens
Posté le 20-01-2002 à 16:59:52  profilanswer
 

mais la fonction que j'utilise (lib SDL) c'est pas loadbitmap...

n°91222
chrisbk
-
Posté le 20-01-2002 à 17:11:10  profilanswer
 

ben alors essaye avec LockResource, LoadResource & cie pour sortir ton BMP de l'exe, le sauver dans un endroit temporaire et le relire avec SDL
 
 
ca fait un peu foutoir, quand meme .....

n°91224
antsite
Je me souviens
Posté le 20-01-2002 à 17:13:21  profilanswer
 

ben ouais, c vrai que créer un fichier externe temp, c pas top, enfin,...

n°91233
Willytheki​d
Posté le 20-01-2002 à 17:22:11  profilanswer
 

Ben déjà montre nous à quoi ressemble ta fonction DisplayBMP...c'est sans doute là que se trouve l'erreur!


---------------
Si t'es pas net, reste a la buvette
n°91486
antsite
Je me souviens
Posté le 21-01-2002 à 13:12:46  profilanswer
 

le problème c pas ma fonction !
Elle est dans un .lib et je peux pas y toucher

mood
Publicité
Posté le 21-01-2002 à 13:12:46  profilanswer
 

n°91487
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-01-2002 à 13:15:04  profilanswer
 

si la fonction attend un nom de fichier tu dois lui donner un nom de fichier
 
la seule solution est de créer un fichier temporaire


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°91489
antsite
Je me souviens
Posté le 21-01-2002 à 13:16:59  profilanswer
 

Et bien voila comme ça c clair !
Merci à tous de m'avoir aidé
a+  :hello:  
ANT

n°91605
Ace17
Posté le 21-01-2002 à 17:01:36  profilanswer
 

Non mais attendez la, c'est vraiment porc comme technique ca. Il y a un autre moyen simple d'afficher un bitmap contenu dans une ressource.

n°91619
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-01-2002 à 17:22:32  profilanswer
 

oui mais si il veut utiliser sa fonction venant de son .lib il a pas trop le choix...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°91650
Ace17
Posté le 21-01-2002 à 18:47:33  profilanswer
 

Qui parle d'utiliser absolument cette fonction?

n°91652
antsite
Je me souviens
Posté le 21-01-2002 à 18:51:29  profilanswer
 

ben tu proposes quoi ?

n°91662
Ace17
Posté le 21-01-2002 à 19:01:10  profilanswer
 

// On suppose que hdc est un HDC correspondant a ta fenetre
 
HBITMAP hBitmp;
HDC hdcBitmap;
 
hBitmap = LoadBitmap(hdc, IDB_BITMAP);
hdcBitmap = CreateCompatibleDC(hdc);
SelectObject(hdcBitmap, hBitmap);
BitBlt(hdc, x, y, cx, cy, hdcBitmap, 0, 0, SRCCOPY);
DeleteObject(hdcBitmap)
DeleteObject(hBitmap)

n°91703
antsite
Je me souviens
Posté le 21-01-2002 à 21:06:00  profilanswer
 

Le problème c'est que tout ça (fenêtre, etc) est géré par ma librairie SDL donc moi je m'occupe pas de ça ! Je fais un truc du genre Init() et ensuite je dessine dans la fenêtre ! Y a pas de HDC pas plus que de HWND (en tout cas je n'y ai pas accès !)

n°91761
Willytheki​d
Posté le 21-01-2002 à 23:00:04  profilanswer
 

C'est pas clair :)
 
Pour obtenir le HWND tu utilise SDL_GetWMInfo() de SDL_syswm.h. (Y doit y avoir un example sur le site de la SDL...). Mais je suis bonne poire :)
 
extern DECLSPEC int SDL_GetWMInfo(SDL_SysWMinfo *info);
et...miracle:
 
typedef struct {
 SDL_version version;
 HWND window;
} SDL_SysWMinfo;
 
Avec ca, tu peux avoir ton DC et faire ce que tu veux!

 

[edtdd]--Message édité par Willythekid--[/edtdd]


---------------
Si t'es pas net, reste a la buvette
n°92097
antsite
Je me souviens
Posté le 22-01-2002 à 19:52:28  profilanswer
 

merci ! Et tu ne saurais pas par hasard comment mettre un bmp dans l'exe avec SDL ?

n°92124
Willytheki​d
Posté le 22-01-2002 à 21:01:31  profilanswer
 

Ben tu l'as pas fait avec les resources?? T'as pas créé une resource BMP dans VC++?? Ca n'a pas particulièrement de rapport avec la SDL:
1) tu crée la ressource et l'ajoute à l'exe lors de la compil
2) tu la load avec les fonctions de l'API Win32
3) tu l'affiche avec les fonctions de la SDL
 
Ton premier post laisse penser que c'est la piste que tu avais choisi!...
 
Au fait, pourkoi tu as chosi la SDL, si c'est pas pour faire du code portable?

 

[edtdd]--Message édité par Willythekid--[/edtdd]


---------------
Si t'es pas net, reste a la buvette
n°92263
antsite
Je me souviens
Posté le 23-01-2002 à 10:42:41  profilanswer
 

si si tu as raison, mais peux tu me filerle code pour :
la Loader avec avec Win32 et l'afficher ?
L'afficher je sais comment faire mais la loader a partir des ressources et l'afficher ensuite je sais pas (c tout le topic ça !) merci

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Visual C++] Mettre un .bmp dans l'exe

 

Sujets relatifs
Est ce normal si visual C++ est en anglais dans Visual studio 6 FR ?Visual C : Implémentation d'un List Control
Visual Studio .Net Finale disponible pour les membres du programme MSDInteraction Visual Basic / Unify
[Visual Studio] & mises à jour ie ???Prog avec Visual Studio 6 d'appli pour Windows CE
[Macros Visual Studio] Créer une toolbarcompiler opengl 1.2 sous visual C++
[Visual Basic] Ou trouver des Tutoriaux ?[Visual C++] onglet
Plus de sujets relatifs à : [Visual C++] Mettre un .bmp dans l'exe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR