IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

GetOpenFileName fait planter SHELL32.dll


Sujet :

Visual C++

  1. #1
    Membre tr�s actif
    Profil pro
    D�veloppeur ind�pendant
    Inscrit en
    Ao�t 2004
    Messages
    374
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur ind�pendant
    Secteur : Transports

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 374
    Par d�faut GetOpenFileName fait planter SHELL32.dll

    c'est vraiment tr�s bizarre, j'ai essay� pas mal de choses, en particulier les exemples d'utilisation de la faq visualc++ pour le cfiledialog , et moult autres exemples d�di�s � la selection d'un fichier, mais j'arrive toujours au m�me resultat.
    lorsque je veux selectionner un fichier situ� sur le bureau windows, la premiere selection se passe parfaitement bien, mais la deuxieme, finit invariablement par faire planter le programme dans son ensemble, sans meme un message, rien.
    Petite pr�cison, le plantage ne se produit QUE lorsque c'est le deuxieme fichier que je vais chercher, et exclusivement sur le bureau windows, et que lorsque je passe ma souris sur une icone de fichier existant. le passage sur les liens ne fait pas planter la boite de dialogue..
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	CString t1,t2;
    	t1.LoadString(IDS_STRING32836);  //Tous fichiers
    	t2.LoadString(IDS_STRING33285);	//Selection du fichier
     
    	TCHAR file[MAX_PATH]=TEXT("");
    	TCHAR path[MAX_PATH]=TEXT("");
    	OPENFILENAME ofn= { sizeof(OPENFILENAME), AfxGetMainWnd()->m_hWnd, NULL,
                             TEXT("all files\0*.*\0\0"), NULL,
                             0, 1, file, MAX_PATH, NULL, 0, path,
                             TEXT(t2),   //"Selection du fichier"),
                             OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST, 0, 0,
                             TEXT("*.*"), 0, NULL, NULL };
    	int a=GetOpenFileName( &ofn );
    et ca me donne en mode debug un splendide
    unhandled exception in shell32.dll 0x0000000C5 access violation...
    et cela ne se produit QUE lorsque c'est la deuxieme fois que je vais selectionner un fichier sur ce satan� bureau..
    quelques fois aussi, j'ai des faux espoirs, car cela ne se produit que la troisieme fois...
    j'ai trouve un poste sur usenet qui pourrait d�crire le meme probleme et son eventuelle solution, � savoir augmenter la taille du stack, mais probleme, comment faire sous visual c++6.???
    autrement, je suis � la recherche de toute autre solution qui me permettrait de selectionner un fichier � la fois sans faire planter cette satann�e dll..

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    1. Bizarre, le coup du TEXT(t2)...
    2. Tu es en MFC, tu devrais essayer avec une CFileDialog...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre tr�s actif
    Profil pro
    D�veloppeur ind�pendant
    Inscrit en
    Ao�t 2004
    Messages
    374
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur ind�pendant
    Secteur : Transports

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 374
    Par d�faut essayer avec un cfiledialog
    oui, en effet,j'ai essay� aussi, mais ca donne le meme resultat.
    j'ai m�me �t jusqu'� prendre le source de la faq visual c++ cfiledialog pour le mettre dedans et j'ai exactement le meme plantage

  4. #4
    Membre tr�s actif
    Profil pro
    D�veloppeur ind�pendant
    Inscrit en
    Ao�t 2004
    Messages
    374
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur ind�pendant
    Secteur : Transports

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 374
    Par d�faut arrggg
    arggg
    j'y perds mon latin, j'ai essay� d'augmenter la pile, des morceaux de code recuperes ici ou la, mais j'ai toujours le meme probleme, et seulement quand je vais chercher un fichier pour la deuxieme fois sur le bureau..
    ya t-il quelque chose qui doit etre reinitialis� dans le cfiledialog ou le getopenfilename.?? j'y perds mon latin, car c'est vraiment � l'int�rieur de cette fichue dll que se produit l'erreur.
    j'arrive meme pas � la recuperer en faisant des try/catch..

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je ne sais pas, il y a peut-�tre un truc mal initialis�...

    Pour les try/catch, c'est normal, le "C++ exception handling" n'arr�te pas ce type d'exceptions car ce ne sont pas des exceptions C++.
    Essaie le Structured Exception Handling pour cela...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre tr�s actif
    Profil pro
    D�veloppeur ind�pendant
    Inscrit en
    Ao�t 2004
    Messages
    374
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur ind�pendant
    Secteur : Transports

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 374
    Par d�faut bon, quand il faut, ben, il faut...

    constatant une fois de plus que le shell de windows est cod� avec des pieds d'imb�cile cul de jatte, plus qu'une chose � faire...
    j'ai recod� compl�tement le composant...ca m'a pris quelques jours pour maitriser la chose, mais au moins, je suis s�r que ca ne va pas me provoquer un plantage intempestif.
    encore un bel exemple de l'absence de r�vision des codes sources de windows.

  7. #7
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    En fait, j'ai remarqu� un param�tre qui ne correspond � rien de sp�cifi�:
    lpstrInitialDir (dans lequel tu mets path) est suppos� �tre NULL ou sp�cifier un r�pertoire. Windows n'appr�cie peut-�tre pas la cha�ne vide non-nulle...


    Ah-HA! Je crois que j'ai trouv�!
    Citation Envoy� par MSDN
    lpstrDefExt
    Pointer to a buffer that contains the default extension. GetOpenFileName and GetSaveFileName append this extension to the file name if the user fails to type an extension. This string can be any length, but only the first three characters are appended. The string should not contain a period (.). If this member is NULL and the user fails to type an extension, no extension is appended.
    Et toi, tu y passes "*.*"
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre tr�s actif
    Profil pro
    D�veloppeur ind�pendant
    Inscrit en
    Ao�t 2004
    Messages
    374
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur ind�pendant
    Secteur : Transports

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 374
    Par d�faut non, vraiment pas...
    salut, bon t'as l'air comme moi, tu t'accroches tant que t'as pas la solution.
    j'ai essay� en suivant le point que tu as soulev�, mais rien � faire.
    donc je me suis dit que ca venait peut-�tre de mes variables.

    alors, j'ai fait table rase et j'ai essay� avec ce bout de code tir� du msdn.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    //	#define MAX_PATH          1024    // pour rappel
    	TCHAR szFilter[MAX_PATH]="all files\0*.*\0\0";
    	TCHAR szFile[MAX_PATH]="";
    	TCHAR szFileTitle[MAX_PATH]="";
    	TCHAR szDefExt[MAX_PATH]="";
     
    	Ofn.lStructSize =			sizeof(OPENFILENAME); 
    	Ofn.hwndOwner =			NULL; 
    	Ofn.lpstrFilter =			szFilter; 
    	Ofn.lpstrCustomFilter =		(LPSTR)NULL; 
    	Ofn.nMaxCustFilter =		0L; 
    	Ofn.nFilterIndex =			1L; 
    	Ofn.lpstrFile =			szFile; 
    	Ofn.nMaxFile =			sizeof(szFile); 
    	Ofn.lpstrFileTitle =			szFileTitle; 
    	Ofn.nMaxFileTitle =			sizeof(szFileTitle); 
    	Ofn.lpstrInitialDir =			(LPSTR) NULL; 
    	Ofn.lpstrTitle =			(LPSTR)NULL; 
    	Ofn.Flags =			OFN_SHOWHELP | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; 
    	Ofn.nFileOffset =			0; 
    	Ofn.nFileExtension =		0; 
    	Ofn.lpstrDefExt =			szDefExt; 
     
    	int a=0;
    	a=GetOpenFileName( &Ofn );
    et la, surprise, ca plante � fond les gamelles!!!
    jamais la premi�re fois, non, toujours � la deuxi�me visite sur le bureau, lorsque le curseur de la souris passe au dessus d'un fichier pr�sent sur le bureau, non pas un lien.
    je pr�cise que je fais l'appel depuis ma classe cmainframe, j'ai des timers, des threads en route, et des liaisons ftp, et autres qui peuvent �tre aussi en route, mais j'ai essay� en les supprimant, purement et simplement, mais elles sont pas en causes, (j'ai m�me supprim� leurs d�larations et les variables associ�es au cas ou...)
    et donc, au moment ou le popup de description du fichier essaye de se mettre en place, le programme disparait, purement et simplement.

    je repasse sur mon composant, au moins il est b�ton lui..
    merci d'avoir regard�..

  9. #9
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Salut,
    D�j�, remplace tes sizeof() par des ARRAYSIZE(). Si tu compiles en unicode, c'est le plantage assur�.
    Code si tu n'es pas sous Visual : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    #ifndef ARRAYSIZE
    #define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
    #endif

    Et je le r�p�te, il y a des endroits o� l'aide dit qu'on peut mettre NULL, mais ne dit rien sur les cha�nes vides... (ne pas oublier que "" != NULL)

    PS: Initialise bien ta OPENFILENAME � z�ro (avec {0} � la d�claration ou ZeroMemory() dessus) pour que les variables non-mentionn�es (ou futures) soient bien � z�ro)
    http://msdn.microsoft.com/library/de...enfilename.asp

    Et les casts en (LPSTR) sont inutiles. (M�me si moi, j'ai l'habitude d'utiliser un truc du genre qui suit)
    Code C/C++ perso : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #ifndef NULL_T
    #define NULL_A ((LPSTR)NULL)
    #define NULL_W ((LPWSTR)NULL)
    #define NULL_T ((LPTSTR)NULL)
    #endif
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ing�nieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 46
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par d�faut
    eomer212, j'ai eu le m�me probl�me... la boite de dialogue me faisait planter mon logiciel... plusieurs mois plus tard, je m'y suis remis, en recopiant � droite et gauche du code pour l'utiliser, et apr�s plusieurs jours d'acharnement, j'ai finalement laiss� tomb�... , j'ai fait comme toi mon propre composant, et depuis aucun probl�me

  11. #11
    Membre �clair� Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par d�faut Solution
    Bon, OK le post initial date pas mal, mais on le trouve encore dans les premiers liens avec une recherche Google, et comme j'ai eu le m�me probl�me et que j'ai trouv� une solution sans avoir besoin de recoder la fonction, voil� :

    Il suffit au d�but de l'application de faire un appel � la fonction CoInitialize() - initialisation des fonctions de la librairie COM - d�clar�e dans objbase.h et incluse dans la librairie ole32.

    Puis � la fin de l'application, un appel � CoUninitialize() pour lib�rer les processus.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #include <windows.h>
    #include <objbase.h>
     
    int WINAPI WinMain(/** arguments **/)
    {
      /** déclaration et création de la fenêtre principale **/
     
      CoInitialize(NULL);
     
      {
        /** boucle des messages **/
      }
     
      CoUninitialize();
     
      /** retour **/
    }
    C'est tout et �a marche !
    Plus de probl�me avec GetOpenFileName() ...

  12. #12
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2010
    Messages
    248
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Mai 2010
    Messages : 248
    Par d�faut Merci
    Merci pour ta solution ca marche bien, plus de plantages intempestifs. Tu viens de mettre un terme � 2 jours d'arrachage de cheveux.

  13. #13
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 536
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 536
    Par d�faut
    Bonjour,


    Citation Envoy� par Ngork Voir le message
    Il suffit au d�but de l'application de faire un appel � la fonction CoInitialize() - initialisation des fonctions de la librairie COM - d�clar�e dans objbase.h et incluse dans la librairie ole32.
    ...
    Plus de probl�me avec GetOpenFileName() ...
    CoInitialize() n'a absolument rien � voir avec GetOpenFileName() !!!
    GetOpenFileName() est une fonction C du SDK de Windows contenue dans comdlg32.dll


    GetOpenFileName Function

    --------------------------------------------------------------------------------

    The GetOpenFileName function creates an Open dialog box that lets the user specify the drive, directory, and the name of a file or set of files to open.



    Function Information

    Minimum DLL Version comdlg32.dll
    Header Declared in Commdlg.h, include Windows.h
    Import library Comdlg32.lib
    Minimum operating systems Windows 95, Windows NT 3.1
    Unicode Implemented as ANSI and Unicode versions.
    CoInitialize() est une fonction contenue dans ole32.dll qui permet de cr�er des objets COM avec CoCreateInstance() !
    S'il y a des plantages c'est que GetOpenFileName() est mal initialis�e

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    AfxGetMainWnd()->m_hWnd==NULL ?

  14. #14
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 536
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 536
    Par d�faut
    Il faut faire un ZeroMemory au pr�alable pour bien initialiser la structure de type OPENFILENAME

    Voil� du code que j'utilise il fonctionne parfaitement
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    case IDM_FILE_OPEN:
    					OPENFILENAME ofn;
    					wchar_t wFile[256];
    					ZeroMemory(&ofn, sizeof(ofn));
    					ofn.lStructSize = sizeof(ofn);
    					ofn.hwndOwner = hWnd;
    					ofn.lpstrFile = wFile;
    					ofn.lpstrFile[0] = '\0';
    					ofn.nMaxFile = sizeof(wFile);
    					ofn.lpstrFilter = TEXT("*.txt\0");
    					ofn.nFilterIndex = 1;
    					ofn.lpstrFileTitle = NULL;
    					ofn.nMaxFileTitle = 0;
    					ofn.lpstrInitialDir = NULL;
    					ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
    					if (GetOpenFileName(&ofn)==TRUE) 
    					{
    						// alors faire					}
    				break;

  15. #15
    Membre �clair� Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par d�faut Mmm ...
    Merci pour tes informations.

    Toutefois, apr�s essai, faire un ZeroMemory pour initialiser la structure OPENFILENAME ne change rien au probl�me expos� dans ce post ...

    Alors qu'initialiser les objets COM r�soud effectivement ce probl�me !

    Cordialement,
    N'gork.

  16. #16
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    C''est bizarre, je pensais que GetOpenFileName() �chouerait sans planter sur une non-initialisation de COM...

    En tout cas, c'est normal que �a ait besoin de COM, parce que GetOpenFileName() ouvre un Explorer. Et donc, charge des extensions du shell.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Membre �clair� Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par d�faut Mise � jour
    Je suis tomb� l'autre jour sur l'information ad-hoc dans la doc Microsoft avec une fonction tr�s proche : SHBrowseForFolder.
    https://docs.microsoft.com/en-us/win...owseforfoldera

    Suis-je pass� � c�t� de cette doc � l'�poque ou n'�tait-ce pas encore document� ?
    En tout cas, la r�ponse est claire sur le fait que "You must initialize Component Object Model (COM) before you call SHBrowseForFolder", mais ce n'est bizarrement pas repris pour GetOpenFileName qui en est pourtant tr�s proche et pr�sente le m�me curieux effet de bord !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. GetOpenFilename fait planter Excel
    Par punky_brooster dans le forum Macros et VBA Excel
    R�ponses: 7
    Dernier message: 25/11/2014, 11h11
  2. fonction dans dll qui fait planter programme
    Par chris069 dans le forum C++
    R�ponses: 22
    Dernier message: 28/04/2009, 16h19
  3. probleme de requette qui fait planter powergres
    Par fehmitn dans le forum PostgreSQL
    R�ponses: 1
    Dernier message: 15/09/2004, 18h48
  4. R�ponses: 12
    Dernier message: 16/03/2004, 14h21
  5. fonction qui en fait planter une autre
    Par ickis dans le forum C
    R�ponses: 5
    Dernier message: 18/08/2003, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo