LECTURE/ECRITURE DANS UN FICHIER DE SAUVEGARDE N64 [DEV-C++] [API]
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
13 mai 2006 à 18:15
v1kt0r
Messages postés7Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention15 mai 2006
-
15 mai 2006 à 15:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
v1kt0r
Messages postés7Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention15 mai 2006 15 mai 2006 à 15:10
Pour créer une fenêtre principale non redimensionnable, il suffit de lui donner le style WS_OVERLAPPED mais attention, il faut aussi rajouter:
WS_MINIMIZEBOX pour afficher le bouton [_];
WS_MAXIMIZEBOX pour afficher le bouton |[]| (inutile dans notre cas;
WS_SYSMENU pour afficher le bouton [X].
v1kt0r
Messages postés7Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention15 mai 2006 13 mai 2006 à 19:45
Ah OK,
je viens de comprendre, désolé, je suis sur un autre prog en DirectX/OpenGL et je comprenais pas le coup du handle invalide !
J'ai mis CloseHandle(hf); dans ma condition (hf!=HANDLE_INVALIDE_VALUE).
Merci, désolé pour la fuite de cerveau...
PS: je refais le zip
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 mai 2006 à 19:37
Mais non MessageBox n'altère rien, c'est le déroulement de ton code qu'il faut juste revoir, si tu arrives dans MessageBox il ne faut pas continuer dans CloseHandle, voila tout.
J'avais mis 'return' histoire d'indiquer mais tu mets ce qu'il convient du moment que tu ne vas pas dans CloseHandle.
v1kt0r
Messages postés7Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention15 mai 2006 13 mai 2006 à 19:27
Petit problème,
le compilateur n'accepte pas return; , il faut une valeur mais je ne veux pas quitter l'appli à cause d'un problème de fichier.
v1kt0r
Messages postés7Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention15 mai 2006 13 mai 2006 à 19:21
OK,
donc j'ai rajouté return; après le MessageBox(...);
Tu dis que le MessageBox(...); altère le handle du fichier ?
Merci Micro$oft pour ta gestion des pointeurs !
Merci BruNews pour l'info.
Et pour la fenêtre UNRESIZABLE, pas d'autre idée que la DialogBox ? (Trop bête)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 mai 2006 à 19:09
CloseHandle ne doit être appelé QUE SI hfl != INVALID_HANDLE_VALUE
et pas en venant de MessageBox car là le handle est invalide.
Un truc de ce genre:
if(hfl == INVALID_HANDLE_VALUE) {
MessageBox(...);
return; // ON NE VA PAS PLUS LOIN
}
// SUITE DU CODE ICI
CloseHandle(hfl);
v1kt0r
Messages postés7Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention15 mai 2006 13 mai 2006 à 18:58
Je vois pas du tout ce que tu voudrais que je fasse.
Le fichier est "créer" avant le test et je le "ferme" dans tous les cas.
Pourrais-tu être plus clair s'il te plait.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 mai 2006 à 18:49
depuis MessageBox ensuite va passer au CloseHandle, ne devrait pas.
v1kt0r
Messages postés7Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention15 mai 2006 13 mai 2006 à 18:43
Merci BruNews,
j'y avais pensé mais je trouvais pas l'idée terrible. J'aurais préféré un style WS_UNRESIZABLE pour les fenêtres mais y'a pas, dommage.
Pourquoi tu met :
if(hfl != INVALID_HANDLE_VALUE) {
// ton code
}
else {
MessageBox(...); // NE PAS ALLER DESSOUS, RIEN A FERMER
}
CloseHandle(hfl);
C'est ce que j'ai fais.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 mai 2006 à 18:15
On fait une dialogbox quand on veut une fenetre non redimensionnable, c'est de loin le plus simple.
if(hfl != INVALID_HANDLE_VALUE) {
// ton code
}
else {
MessageBox(...); // NE PAS ALLER DESSOUS, RIEN A FERMER
}
CloseHandle(hfl);
15 mai 2006 à 15:10
WS_MINIMIZEBOX pour afficher le bouton [_];
WS_MAXIMIZEBOX pour afficher le bouton |[]| (inutile dans notre cas;
WS_SYSMENU pour afficher le bouton [X].
13 mai 2006 à 19:45
je viens de comprendre, désolé, je suis sur un autre prog en DirectX/OpenGL et je comprenais pas le coup du handle invalide !
J'ai mis CloseHandle(hf); dans ma condition (hf!=HANDLE_INVALIDE_VALUE).
Merci, désolé pour la fuite de cerveau...
PS: je refais le zip
13 mai 2006 à 19:37
J'avais mis 'return' histoire d'indiquer mais tu mets ce qu'il convient du moment que tu ne vas pas dans CloseHandle.
13 mai 2006 à 19:27
le compilateur n'accepte pas return; , il faut une valeur mais je ne veux pas quitter l'appli à cause d'un problème de fichier.
13 mai 2006 à 19:21
donc j'ai rajouté return; après le MessageBox(...);
if(hfl != INVALID_HANDLE_VALUE) {
// ton code
}
else {
MessageBox(...);
return;
}
CloseHandle(hfl);
C'est bon comme ça ?
Tu dis que le MessageBox(...); altère le handle du fichier ?
Merci Micro$oft pour ta gestion des pointeurs !
Merci BruNews pour l'info.
Et pour la fenêtre UNRESIZABLE, pas d'autre idée que la DialogBox ? (Trop bête)
13 mai 2006 à 19:09
et pas en venant de MessageBox car là le handle est invalide.
Un truc de ce genre:
if(hfl == INVALID_HANDLE_VALUE) {
MessageBox(...);
return; // ON NE VA PAS PLUS LOIN
}
// SUITE DU CODE ICI
CloseHandle(hfl);
13 mai 2006 à 18:58
Le fichier est "créer" avant le test et je le "ferme" dans tous les cas.
Pourrais-tu être plus clair s'il te plait.
13 mai 2006 à 18:49
13 mai 2006 à 18:43
j'y avais pensé mais je trouvais pas l'idée terrible. J'aurais préféré un style WS_UNRESIZABLE pour les fenêtres mais y'a pas, dommage.
Pourquoi tu met :
if(hfl != INVALID_HANDLE_VALUE) {
// ton code
}
else {
MessageBox(...); // NE PAS ALLER DESSOUS, RIEN A FERMER
}
CloseHandle(hfl);
C'est ce que j'ai fais.
13 mai 2006 à 18:15
if(hfl != INVALID_HANDLE_VALUE) {
// ton code
}
else {
MessageBox(...); // NE PAS ALLER DESSOUS, RIEN A FERMER
}
CloseHandle(hfl);