PASSAGE D'UNE VARIABLE PAR DES DIALOGBOX

cs_LordBob
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
- 19 juil. 2004 à 16:18
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
- 6 déc. 2004 à 20:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24704-passage-d-une-variable-par-des-dialogbox

BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
6 déc. 2004 à 20:37
y4ri > faut faire un projet win32 APP GUI et non console.
y4r1
Messages postés
5
Date d'inscription
jeudi 4 novembre 2004
Statut
Membre
Dernière intervention
30 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és
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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és
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 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és
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
19 juil. 2004 à 18:16
Salut,

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.
Afficher les 6 commentaires