Problème avec CFileDialog

Signaler
Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
-
Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
-
Bonjour à tous,

j'ai un soucis avec CFileDialog. Ce n'est pas la première fois que je l'utilise mais là je bloque complètement... Dans mon programme (MFC), j'utilise le composant flash et lors d'un évènement (ici fscommand), je souhaite ouvrir un CFileDialog mais lors de l'ouverture, la boite apparait très brièvement et l'appli se ferme! Mon code est le suivant :

void CmonDlg::FSCommandShockwaveflash(LPCTSTR command, LPCTSTR args)
{
// Ferme le programme
if (strcmp(command, "quit")==0)
{
CmonDlg::OnCancel();
return;
}

if (strcmp(command, "crea new image")==0)
{
char filterStr[] = "Image jpeg (*.jpg;*.jpeg)|*.jpg;*.jpeg||";

CFileDialog fileOpenDialog( TRUE, //set to true to open file dialog
NULL, //default extension
NULL, //default file name
OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST, //flags
filterStr, this);

fileOpenDialog.m_ofn.lpstrTitle = "Choix d'une photo";

if (fileOpenDialog.DoModal()!=IDOK) //<<<<< PLANTE ICI
return;

CString pathName = fileOpenDialog.GetPathName();

char imageString[1024];
sprintf(imageString, "%s", pathName);
m_flash.SetVariable("MFCobjet.msg", imageString);

return;
}
}

Ca plante dès le DoModal, même si je n'ai pas de code ensuite.
Je suis sous XP avec Visual C++ .NET

La moindre idée sera la bien venue.
A voir également:

5 réponses

Messages postés
793
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
10 février 2021
8
tu es sûr que ton code compile, je viens de l'essayer sous VC++6.0 et il ne compile pas.
en déclarant des CString pour filtrestr et le titre et en les utilisant au bon endroit, tout se passe bien.

louis14
Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
2
Tout dépend pourquoi il ne compile pas! Tu as ajusté la classe à ton test? Tu as commenté le code après le premier return? J'ai toujours utilisé char ici, d'ailleur c'est aussi le cas dans l'exemple MSN (mais bon, on va tester avec CString hein!)

Par contre, j'ai une voie. Ca plante uniquement quand le repertoire d'ouverture est "Mes images" dans "Mes documents" et qu'il y a une image. Si le répertoire d'ouverture est autre ou qu'il n'y ai pas d'image, ça plante pas. C'est assez fou je trouve. En attendant, je définie le repertoire par defaut sur C: mais c'est pas top comme solution je trouve...
Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
2
Bon, je problème persiste et maintenant ça bug quelques soit le dossier de démarrage...

Toujours pas de semblant de solution? :(
Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
2
J'ai beau remplacer mon code par celui d'autres programmeur, j'ai toujour la même erreur :

Microsoft Development Environment

Exception non gérée à 0x77f988f6 dans Test.exe:0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00030ff8.
Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
2
En mode pas à pas, j'entre dans dlgfile.cpp avec DoModal

Ca plante à nResult = ::GetOpenFileName(&m_ofn);