PB compilation

kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012 - 12 juil. 2005 à 21:19
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 13 juil. 2005 à 04:23
Bonjour voila mon pb

je devellope avec Devc++ quand je lance la compilation, il me fait des erreur de declaration de fonction alors que chez un ami lo programme ce compile tres bien

voici le messages



projet1.cpp: In function `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)':
projet1.cpp:51: error: `Messagebox' undeclared (first use this function)
projet1.cpp:51: error: (Each undeclared identifier is reported only once for each function it appears in.)
projet1.cpp:57: error: `WND_DESKTOP' undeclared (first use this function)
projet1.cpp:61: error: `CreateWindowsEx' undeclared (first use this function)
projet1.cpp:72: error: `messages' undeclared (first use this function)
projet1.cpp: In function `LRESULT WindowsProc(HWND__*, UINT, WPARAM, LPARAM)':
projet1.cpp:84: error: `DefWindowsProc' undeclared (first use this function)
make.exe: *** [projet1.o] Error 1



j'ai entendu parler de linker les librairie mais jy comprend pas trop
merci de votre aide


si besoin est, je laisserai le code

7 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
12 juil. 2005 à 21:22
Messagebox -> MessageBox
WND_DESKTOP -> HWND_DESKTOP
CreateWindowsEx -> CreateWindowEx
DefWindowsProc -> DefWindowProc

Aucun rapport avec le link, ce code ne compile surement pas chez ton ami
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
12 juil. 2005 à 22:14
si si l'executable se créer la programme marche mais chez moi non

voila le code


#include <windows.h>

LRESULT CALLBACK WindowsProc(HWND, UINT, WPARAM, LPARAM);

HWND hWnd;

const HBRUSH hCouleur_Orange = CreateSolidBrush(RGB(255,150,0));
HBRUSH hTransparent = static_cast <HBRUSH> (GetStockObject(HOLLOW_BRUSH));
HBRUSH hBackground = hTransparent;


static char szNomDeLaClass[ ] = "Fenêtre Windows simple";
// sz : string zéro (chaîne se terminant par NULL (0))
// règle de nommage



int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpcmdLine,
int nCmdShow)

{
WNDCLASSEX fenetre1;

fenetre1.hInstance = hThisInstance;
fenetre1.hbrBackground = hBackground;
fenetre1.lpfnWndProc = WindowsProc;
fenetre1.style = CS_HREDRAW | CS_VREDRAW | CS_NOCLOSE;
fenetre1.lpszClassName = szNomDeLaClass;


fenetre1.cbSize = sizeof (WNDCLASSEX);
fenetre1.hIcon = LoadIcon (NULL, IDI_APPLICATION);
// Utilise l'icone prédéfinie
fenetre1.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
// Utilise l'icone prédéfinie
fenetre1.hCursor = LoadCursor (NULL, IDC_ARROW);
// Utilise le curseur standard (flêche)
fenetre1.lpszMenuName = NULL; // Pointeur sur la ressource menu
// (ici pas de menu)
fenetre1.cbClsExtra = 0; // Non utilisé pour l'instant
fenetre1.cbWndExtra = 0; // Non utilisé pour l'instant

if (RegisterClassEx (&fenetre1) == false)
{
return 0;
}
else
{
Messagebox(hWnd, "La classe n'a pas pu s'enregistré", "probleme de construction", MB_OK);


hWnd = CreateWindowsEx(0 , szNomDeLaClass, "ye",
WS_CAPTION | WS_MINIMIZEBOX,
15, 50, 200, 400,
WND_DESKTOP, // La fenêtre est une fenêtre enfant du bureau
NULL, // Pas de menu
hThisInstance, // Handle de l'instance d'application
NULL
);

ShowWindow (hWnd, SW_SHOW);

MSG message;

while (GetMessage (&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return messages.wParam;
}
}

LRESULT CALLBACK WindowsProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowsProc(hWnd, message, wParam, lParam);
}
return 0;
}
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
12 juil. 2005 à 23:24
As tu un problème avec la langue française ???

Remplace par ce qu'à écrit Vecchio tu verras...

void Aurevoir( void ); //Bonne journée
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
12 juil. 2005 à 23:27
a merde vraiment dsl

je devait dormir quand j'ai marqué ca

quezl con je suis

encore dsl
0

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

Posez votre question
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
12 juil. 2005 à 23:32
Lol soit pas désolé

Tu va juste mourir c'est pas grave

On va t'égorger et te manger :)

void Aurevoir( void ); //Bonne journée
0
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
13 juil. 2005 à 00:45
pendant un moment j'ai vraiment cru que c'etait vrai

lol

merci a vous
++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
13 juil. 2005 à 04:23
Tu oublies de libérer hCouleur_Orange. A la fin de ton programme, tu mets DeleteObject(hCouleur_Orange);
Et le message "La classe n'a pas pu s'enregistré" va s'afficher quand la classe aura pu s'enregistrer, ce n'est pas à mettre dans le else, mais dans le if
HWND_DESKTOP ne représente pas le bureau (ca vaut 0)
0