Opengl bug

darmoor Messages postés 38 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 2 novembre 2005 - 4 mai 2004 à 19:33
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 5 mai 2004 à 07:33
Voila je vien de debuter dans l'openGL et selon le tutorial jai fait ce qu'il falai et sa me marque une erreur:

le code:

#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>

#define HInst hInstance

int WINAPI WinMain(  HINSTANCE hInstance, 
                     HINSTANCE hPrevInstance,  
                     LPSTR lpCmdLine,  
                     int nCmdShow) 
{ 

LRESULT CALLBACK WinProc( 
 HWND hwnd, //Handle de la fenêtre 
UINT uMsg, //Message 
WPARAM wParam, //Paramètre word 
LPARAM lParam ) //Paramètre long 
  
{  
if (uMsg==WM_CLOSE) 
{PostQuitMessage(0);return 0;}
else 
return DefWindowProc(hwnd,uMsg,wParam,lParam);
} 

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, //Icône 
  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);  

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ère 
 0, //Identifiant de la fenêtre fille 
 HInst, //HINSTANCE du programme 
 NULL /*Chaine de caractère envoyée
        en paramètre lors de la création
                              de la fenêtre*/ 
);  

if (!OpenGLWindow) exit(1); 

MSG msg; 
do 
{   
  while (PeekMessage(&msg,OpenGLWindow,0,0,PM_NOREMOVE)) 
{ 

  
if(!GetMessage(&msg,OpenGLWindow,0,0)) exit(0);
DispatchMessage(&msg);
 

} 
}   
while(1); 

return 0; //(pour la forme)
}



et jai compilé sous VC++ 6:

ompiling...
debut.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\projet_opengl\debut.cpp(19) : error C2601: 'WinProc' : local function definitions are illegal
Error executing cl.exe.

projet_opengl.exe - 1 error(s), 0 warning(s)


Donc si vous savez ce qui ne vas pas merci de me dire merci

#############
#Hasta#La#Vista#
#############
#Bye#Bye#
########

3 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
4 mai 2004 à 22:17
c'est un gros bordel ce code, tu m'etonne que ca compile pas

tu est sur que tu a bien recopier?
0
darmoor Messages postés 38 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 2 novembre 2005
5 mai 2004 à 07:15
nan mais jai un peux tout revu:

#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>

LRESULT CALLBACK WinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
  
HINSTANCE	HInst;
 
/***************************************************************************************/

int WINAPI WinMain(  HINSTANCE hInstance, 
                     HINSTANCE hPrevInstance,  
                     LPSTR lpCmdLine,  
                     int nCmdShow) 
{

  HInst = hInstance;

  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, //Icône 
    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);  

  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ère 
    0, //Identifiant de la fenêtre fille 
    HInst, //HINSTANCE du programme 
    NULL /*Chaine de caractère envoyée
        en paramètre lors de la création
                              de la fenêtre*/ 
  );  

  if (!OpenGLWindow) exit(1); 

  MSG msg; 
  do 
  {   
    while (PeekMessage(&msg,OpenGLWindow,0,0,PM_NOREMOVE)) 
    { 
      if(!GetMessage(&msg,OpenGLWindow,0,0)) exit(0);
      DispatchMessage(&msg);
    } 
  }
   
  while(1); 
  return 0; //(pour la forme)
}
/********************************************************************************************/

LRESULT CALLBACK WinProc( 
 HWND hwnd, //Handle de la fenêtre 
 UINT uMsg, //Message 
 WPARAM wParam, //Paramètre word 
 LPARAM lParam ) //Paramètre long 
  
{  
 if (uMsg==WM_CLOSE)
 {
 PostQuitMessage(0);
 return 0;
 }
else
 return DefWindowProc(hwnd,uMsg,wParam,lParam);

} 



Je me demande si là sa va car mon compilateur qu tout vas bien donc j'ai tout repris dans ma tete et c'est bon.
Ya vait unbleme avec la declaration de la fonction WinProc

Voila
#############
#Hasta#La#Vista#
#############
#Bye#Bye#
########
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
5 mai 2004 à 07:33
tu l'a dit
la ca va
0
Rejoignez-nous