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.
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.
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 ) ?
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;
}
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.