BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 déc. 2004 à 20:37
y4ri > faut faire un projet win32 APP GUI et non console.
y4r1
Messages postés5Date d'inscriptionjeudi 4 novembre 2004StatutMembreDernière intervention30 avril 2009 6 déc. 2004 à 20:30
Svp aide moi chui un debutant , quand je compile pa de probleme mais quand j'execute , build , il me mé se message d'erreur
--------------------Configuration: main - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/main.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
main.exe - 2 error(s), 0 warning(s)
quesqu'il fau faire aidé moi svp
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 19 juil. 2004 à 19:14
multiple de 4 est pour un alignement correct des donnees, 'normalement' le compilo devrait corriger cela lui meme mais il vaut mieux prendre l'habitude de faire bien par soi meme. Un mauvais alignement entraine d'enormes pertes de performances.
Ceci est du a l'architecture des x86, si on veut lire/ecrire 1 octet, la donnee visee peut se trouver ou l'on veut, si on accede a 2 octets alignement sur multiple de 2, si 4 aligne sur multi de 4.
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 19 juil. 2004 à 19:00
Juste par curiosité, pour les buffers dont la taille est un multiple de 4, je suppose, que l' on y gagne niveau perfs, mais il se passe quoi au juste (pour que ca aille plus vite ) ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 19 juil. 2004 à 18:16
Commence par Petzold (CP5) et toujours MSDN en reference ultime.
inutile de decomposer wParam si tu ne traites que des clics buttons, la partie haute(HIWORD) sera toujours 0.
Evite declarations de variables dans la proc de fenetre, celle ci traitera ses messages beaucoup plus vite.
char buff[501]; NON toujours multiple de 4 sur processeur 32 bits, besoin de 501 sera donc 504.
Dans une dialog, traite WM_INITDIALOG et retourne 1 qui sert a placer correctement le focus, quasi tous les autres cas doivent retourner 0.
Verifier si texte a ete entre, nbr caracteres en retour de GetDlgItemText.
char buff[504];
LRESULT CALLBACK MainProc(HWND Dlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message) {
case WM_INITDIALOG:
// autre code d'initialisation ici
return 1;
case WM_COMMAND:
switch(wParam) {
case IDOK: //Clique sur le bouton OK de la boîte de dialogue
//Boîte de message qui affiche le contenu de buff
if(GetDlgItemText(Dlg, IDC_ELEMENT1, buff, 500))
MessageBox(Dlg, buff, "Contenu de ELEMENT1", MB_OK);
return 0;
case IDCANCEL:
EndDialog(Dlg, 0);
}
}
return 0;
}
Bonne continuation.
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 19 juil. 2004 à 17:44
6 déc. 2004 à 20:37
6 déc. 2004 à 20:30
--------------------Configuration: main - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/main.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
main.exe - 2 error(s), 0 warning(s)
quesqu'il fau faire aidé moi svp
19 juil. 2004 à 19:14
Ceci est du a l'architecture des x86, si on veut lire/ecrire 1 octet, la donnee visee peut se trouver ou l'on veut, si on accede a 2 octets alignement sur multiple de 2, si 4 aligne sur multi de 4.
19 juil. 2004 à 19:00
19 juil. 2004 à 18:16
il y a aussi les sources des bouquins indiques plus haut:
http://brunews.free.fr/brunews/download/CP5Sources.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip
Commence par Petzold (CP5) et toujours MSDN en reference ultime.
inutile de decomposer wParam si tu ne traites que des clics buttons, la partie haute(HIWORD) sera toujours 0.
Evite declarations de variables dans la proc de fenetre, celle ci traitera ses messages beaucoup plus vite.
char buff[501]; NON toujours multiple de 4 sur processeur 32 bits, besoin de 501 sera donc 504.
Dans une dialog, traite WM_INITDIALOG et retourne 1 qui sert a placer correctement le focus, quasi tous les autres cas doivent retourner 0.
Verifier si texte a ete entre, nbr caracteres en retour de GetDlgItemText.
char buff[504];
LRESULT CALLBACK MainProc(HWND Dlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message) {
case WM_INITDIALOG:
// autre code d'initialisation ici
return 1;
case WM_COMMAND:
switch(wParam) {
case IDOK: //Clique sur le bouton OK de la boîte de dialogue
//Boîte de message qui affiche le contenu de buff
if(GetDlgItemText(Dlg, IDC_ELEMENT1, buff, 500))
MessageBox(Dlg, buff, "Contenu de ELEMENT1", MB_OK);
return 0;
case IDCANCEL:
EndDialog(Dlg, 0);
}
}
return 0;
}
Bonne continuation.
19 juil. 2004 à 17:44
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/JR4.zip