mondrone
Messages postés246Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention11 mars 2012
-
6 juil. 2005 à 11:37
mondrone
Messages postés246Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention11 mars 2012
-
6 juil. 2005 à 22:35
Voila, je developpe actuellement sur dev-c++, et l'utilisation de ces deux fonctions me renvoie une erreur de linkage. Je voudrais donc savoir ce qui peut manquer à mon programme ou à mon projet pour qu'il fonctionne correctement.
P.S. : il s'agit d'un tutorial sur l'opengl.
void SetupPixelFormat(HDC hDC)
{
PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR), //taille du descripteur de format
1, //version
PFD_SUPPORT_OPENGL |
PFD_DRAW_TO_WINDOW |
PFD_DOUBLEBUFFER, //Propriété
PFD_TYPE_RGBA, //Mode de couleurs
16, //Bits de couleur
0, 0, 0, 0, 0, 0, //Paramètres des couleurs
0,0, //Paramètres alpha
0,0, 0, 0, 0, //Paramètres du buffer d'accumulation
32, //Bits de profondeur
0, //Bits du buffer stencil
0, //Nombre de buffers auxiliaires
0, //ignoré (obsolète)
0, //réservé/code>
0, //ignoré (obsolète)
0, //Couleur de transparence
0 //Ignoré (obsolète)
};
int pixelFormat;
pixelFormat = ChoosePixelFormat(hDC, &pfd);
if (!pixelFormat)
{
MessageBox
(
WindowFromDC(hDC),
"Mode graphique non supporté",
"Problème",
MB_ICONERROR | MB_OK
);
exit(1);
/*Vérifie si un PixelFormat du type demandé existe*/
}
if (!SetPixelFormat(hDC, pixelFormat, &pfd))
{
MessageBox
(
WindowFromDC(hDC),
"Mode graphique non supporté",
"Problème",
MB_ICONERROR | MB_OK
);
exit(1);
/*Applique le PixelFormat. Arrête si erreur*/
}
}
/* Definition de la fonction WinProc qui sert au transit des messages*/
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
/* Recup des infos venant de l'appelant*/
HInst = hInstance;
/* Definition de la classe fenêtre*/
WNDCLASS WindowClass =
{ 0, //Style
WinProc, //Procédure pour la gestion des messages
0, //octets supplémentaires à allouer à la classe
0, //octets supplémentaires à allouer à la fenêtre
HInst, //Handle du programme
0, //Icne
0, //Curseur
0, //Couleur d'arrière-plan
NULL, //Pointeur sur le menu associé à la classe
"La classe!" //Nom de la classe fenêtre
};
if (!RegisterClass(&WindowClass)) exit(1);
/* Création de la première fenêtre OpenGL*/
HWND OpenGLWindow = CreateWindow
( "La classe!", //Classe de la fenêtre
"Fenêtre OpenGL", //Nom de la fenêtre
WS_VISIBLE | WS_BORDER, //Caractéristiques
0, //Position x
0, //Position y
640, //Largeur
480, //Hauteur
0, //Handle de la fenêtre même
0, //Identifiant de la fenêtre fille
HInst, //HINSTANCE du programme
NULL /*Chaine de caractères envoyée
en paramètre lors de la création
de la fenêtre*/
);
if (!OpenGLWindow) exit(1);
/*Recup des messages venant de l'extèrieur et dispatching vers les differents processus !*/
MSG msg;
do
{
while (PeekMessage(&msg,OpenGLWindow,0,0,PM_NOREMOVE))
{
if(!GetMessage(&msg,OpenGLWindow,0,0)) exit(0); // Le message WM_QUIT qui doit faire quitter le prog fait renvoyer 0 par GetMessage
DispatchMessage(&msg);
}
}
while(1);
/* LOL : Pour la forme*/
return 0; //(pour la forme)
}
Sachant que les deux fichiers que j'ai inclus dans le projet sont :
libopengl32.a et libglu32.a
cs_Joky
Messages postés1787Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention31 janvier 20092 6 juil. 2005 à 11:50
Il ne faut pas les inclure dans le projet ces fichiers...
Il faut les mettre au linker :)
Donc tu fais : Projet -> Options du Projet -> Paramètres -> Ajouter Fichier
Et voilà tu charges tes fichier opengl32 etc... et c'est bon normalement :)
mondrone
Messages postés246Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention11 mars 2012 6 juil. 2005 à 17:26
Please !!!!! If someone could help me it would be very grateful !!!!!!!
ce sont bien les fichiers "libopengl32.a" et "libglu32.a" qu'il faut inclure dans la partie linker par l'intermédiaire de ajout de fichier ? Si c'est le cas c bien ce que g fait mais ya pas moyen ca marche pas !
Je ne pige pas...... Ca fait quelques tutos que j'essaye mais la seule chose que j'ai réussi a obtenir pour le moment en prenant les codes directement dans les tutos ce sont des erreurs de linkage ou des fenêtres noires lorsqu'il fallait afficher quelque chose. (a ce moment ct avec un tuto SDL).
mondrone
Messages postés246Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention11 mars 2012 6 juil. 2005 à 21:04
Je pense avoir trouvé la réponse à ma question : il manquait la librairie "libgdi32.a" . Par contre de ça découle autre chose. Est-il normal que la fenêtre qui s'affiche recopie ce qui est derrière elle comme arrière fond (comme si elle étit transparent au moment du lancement uniquement) et que les bouton Alt+F4 qui sont, d'après le toturial activés, ne marchent plus mantenant que j'ai mis cette librairie (ils marchait avant) ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
mondrone
Messages postés246Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention11 mars 2012 6 juil. 2005 à 22:35
Je tien a rectifier le tire : Alt-F4 fonctionne a première vue normalement une fois que j'ai bien selectionnée la fenetre opengl. Par contre je continue a n'avoir un affichage que par transparence !