Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Question about CFileDialog class

Question about CFileDialog class

Scheduled Pinned Locked Moved C / C++ / MFC
databasedata-structuresdebugginghelpquestion
20 Posts 7 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E eusto

    I have a dialog with two browse buttons on it. If i press the frist one, select a file than press the seccond one, my application crashes and i can't figure out why :( . Here's the code:

    //first browse button
    void CAddEquipDlg::OnBnClickedBrowsedb()
    {
    char szFilters[]=
    "Access DB (*.mdb)|*.mdb|All Files (*.*)|*.*||";

    CFileDialog fDlg(TRUE,
        "mdb",
        "\*.mdb",
        OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
        szFilters, 
        NULL
        );
    if (fDlg.DoModal()==IDOK)
    {
        m\_sDB = fDlg.GetPathName();
    }
    SetCurrentDirectory(m\_sCurDir);
    SetDlgItemText(IDC\_DB,m\_sDB);
    AfxGetApp()->WriteProfileString("Connection", "Database",m\_sDB);
    

    }
    //seccond browse button
    void CAddEquipDlg::OnBnClickedBrowseequip()
    {

    char szFilters\[\]=
        "CSV Files (\*.csv)|\*.csv|All Files (\*.\*)|\*.\*||";
    
    CFileDialog fDlg(TRUE,
        "csv",
        "\*.csv",
        OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
        szFilters, 
        NULL
        );
    if (fDlg.DoModal()==IDOK)
    {
        CString bla = fDlg.GetFileTitle();
        m\_sEQUIP = fDlg.GetPathName();
    }
    SetCurrentDirectory(m\_sCurDir);
    SetDlgItemText(IDC\_EQUIP,m\_sEQUIP);    
    

    }

    It crashes two out of tree times (with a send/don't send error message in release) and this is the debug info

    First-chance exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.
    Unhandled exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.

    P Offline
    P Offline
    prasad_som
    wrote on last edited by
    #2

    At what line it takes you in the code ? if you try to debug crash .

    Prasad Notifier using ATL | Operator new[],delete[][^]

    1 Reply Last reply
    0
    • E eusto

      I have a dialog with two browse buttons on it. If i press the frist one, select a file than press the seccond one, my application crashes and i can't figure out why :( . Here's the code:

      //first browse button
      void CAddEquipDlg::OnBnClickedBrowsedb()
      {
      char szFilters[]=
      "Access DB (*.mdb)|*.mdb|All Files (*.*)|*.*||";

      CFileDialog fDlg(TRUE,
          "mdb",
          "\*.mdb",
          OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
          szFilters, 
          NULL
          );
      if (fDlg.DoModal()==IDOK)
      {
          m\_sDB = fDlg.GetPathName();
      }
      SetCurrentDirectory(m\_sCurDir);
      SetDlgItemText(IDC\_DB,m\_sDB);
      AfxGetApp()->WriteProfileString("Connection", "Database",m\_sDB);
      

      }
      //seccond browse button
      void CAddEquipDlg::OnBnClickedBrowseequip()
      {

      char szFilters\[\]=
          "CSV Files (\*.csv)|\*.csv|All Files (\*.\*)|\*.\*||";
      
      CFileDialog fDlg(TRUE,
          "csv",
          "\*.csv",
          OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
          szFilters, 
          NULL
          );
      if (fDlg.DoModal()==IDOK)
      {
          CString bla = fDlg.GetFileTitle();
          m\_sEQUIP = fDlg.GetPathName();
      }
      SetCurrentDirectory(m\_sCurDir);
      SetDlgItemText(IDC\_EQUIP,m\_sEQUIP);    
      

      }

      It crashes two out of tree times (with a send/don't send error message in release) and this is the debug info

      First-chance exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.
      Unhandled exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.

      C Offline
      C Offline
      Cedric Moonen
      wrote on last edited by
      #3

      It's difficult to see the problem. What you can do to narrow the problem is use your debugger (press F5) to see where in your code the crash occurs. Then you can watch for the different variables and check if everything is correct. You can also set breakpoint (press F9) before the crash to see the evolution of the variables.


      Cédric Moonen Software developer
      Charting control [v1.1]

      1 Reply Last reply
      0
      • E eusto

        I have a dialog with two browse buttons on it. If i press the frist one, select a file than press the seccond one, my application crashes and i can't figure out why :( . Here's the code:

        //first browse button
        void CAddEquipDlg::OnBnClickedBrowsedb()
        {
        char szFilters[]=
        "Access DB (*.mdb)|*.mdb|All Files (*.*)|*.*||";

        CFileDialog fDlg(TRUE,
            "mdb",
            "\*.mdb",
            OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
            szFilters, 
            NULL
            );
        if (fDlg.DoModal()==IDOK)
        {
            m\_sDB = fDlg.GetPathName();
        }
        SetCurrentDirectory(m\_sCurDir);
        SetDlgItemText(IDC\_DB,m\_sDB);
        AfxGetApp()->WriteProfileString("Connection", "Database",m\_sDB);
        

        }
        //seccond browse button
        void CAddEquipDlg::OnBnClickedBrowseequip()
        {

        char szFilters\[\]=
            "CSV Files (\*.csv)|\*.csv|All Files (\*.\*)|\*.\*||";
        
        CFileDialog fDlg(TRUE,
            "csv",
            "\*.csv",
            OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
            szFilters, 
            NULL
            );
        if (fDlg.DoModal()==IDOK)
        {
            CString bla = fDlg.GetFileTitle();
            m\_sEQUIP = fDlg.GetPathName();
        }
        SetCurrentDirectory(m\_sCurDir);
        SetDlgItemText(IDC\_EQUIP,m\_sEQUIP);    
        

        }

        It crashes two out of tree times (with a send/don't send error message in release) and this is the debug info

        First-chance exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.
        Unhandled exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.

        R Offline
        R Offline
        Rajesh R Subramanian
        wrote on last edited by
        #4

        Did you try debugging? Where exactly is the app crashing?


        Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

        E 1 Reply Last reply
        0
        • R Rajesh R Subramanian

          Did you try debugging? Where exactly is the app crashing?


          Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

          E Offline
          E Offline
          eusto
          wrote on last edited by
          #5

          The debugger does not take me to any line in my code. It crashes after the second filedialog has been displayed and all i get is a "Show disasembly" option which does nothing:(

          R 1 Reply Last reply
          0
          • E eusto

            The debugger does not take me to any line in my code. It crashes after the second filedialog has been displayed and all i get is a "Show disasembly" option which does nothing:(

            R Offline
            R Offline
            Rajesh R Subramanian
            wrote on last edited by
            #6

            How can that happen! I hope you have set break points. Have you?


            Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

            E 1 Reply Last reply
            0
            • R Rajesh R Subramanian

              How can that happen! I hope you have set break points. Have you?


              Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

              E Offline
              E Offline
              eusto
              wrote on last edited by
              #7

              where do you want me to set brakepoints? i've set them for every line in my code but the application dies while browsing for the file (ie: CFileDialog::DoModal() never returns)

              R H 2 Replies Last reply
              0
              • E eusto

                where do you want me to set brakepoints? i've set them for every line in my code but the application dies while browsing for the file (ie: CFileDialog::DoModal() never returns)

                R Offline
                R Offline
                Roger Stoltz
                wrote on last edited by
                #8

                What does the call stack look like? Is there any line that points to code for which you have source code? I assume you have built your application for debug...:~ -- Rog


                "It's supposed to be hard, otherwise anybody could do it!" - selfquote

                "No one remembers a coward!" - Jan Elfström 1998
                "...but everyone remembers an idiot!" - my lawyer 2005 when heard of Jan's saying above

                E 1 Reply Last reply
                0
                • E eusto

                  where do you want me to set brakepoints? i've set them for every line in my code but the application dies while browsing for the file (ie: CFileDialog::DoModal() never returns)

                  H Offline
                  H Offline
                  Hamid Taebi
                  wrote on last edited by
                  #9

                  When you come to Domodal set a breakpoint after it


                  WhiteSky


                  E 1 Reply Last reply
                  0
                  • H Hamid Taebi

                    When you come to Domodal set a breakpoint after it


                    WhiteSky


                    E Offline
                    E Offline
                    eusto
                    wrote on last edited by
                    #10

                    ...it dies during CFileDialog::DoModal() method (i mean, it dies while my dialog waits for CFileDialog::DoModal() to return)

                    7CA5159E call dword ptr [ecx+14h]

                    That's the disassembly code, but i don't know what to do with it, i don't think it helps

                    R 1 Reply Last reply
                    0
                    • R Roger Stoltz

                      What does the call stack look like? Is there any line that points to code for which you have source code? I assume you have built your application for debug...:~ -- Rog


                      "It's supposed to be hard, otherwise anybody could do it!" - selfquote

                      "No one remembers a coward!" - Jan Elfström 1998
                      "...but everyone remembers an idiot!" - my lawyer 2005 when heard of Jan's saying above

                      E Offline
                      E Offline
                      eusto
                      wrote on last edited by
                      #11

                      no...debug does not point to my code:(

                      1 Reply Last reply
                      0
                      • E eusto

                        ...it dies during CFileDialog::DoModal() method (i mean, it dies while my dialog waits for CFileDialog::DoModal() to return)

                        7CA5159E call dword ptr [ecx+14h]

                        That's the disassembly code, but i don't know what to do with it, i don't think it helps

                        R Offline
                        R Offline
                        Rajesh R Subramanian
                        wrote on last edited by
                        #12

                        Did you try displaying a message box before and after your CFileDialog creation? What happens in that case?


                        Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                        E 1 Reply Last reply
                        0
                        • E eusto

                          I have a dialog with two browse buttons on it. If i press the frist one, select a file than press the seccond one, my application crashes and i can't figure out why :( . Here's the code:

                          //first browse button
                          void CAddEquipDlg::OnBnClickedBrowsedb()
                          {
                          char szFilters[]=
                          "Access DB (*.mdb)|*.mdb|All Files (*.*)|*.*||";

                          CFileDialog fDlg(TRUE,
                              "mdb",
                              "\*.mdb",
                              OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
                              szFilters, 
                              NULL
                              );
                          if (fDlg.DoModal()==IDOK)
                          {
                              m\_sDB = fDlg.GetPathName();
                          }
                          SetCurrentDirectory(m\_sCurDir);
                          SetDlgItemText(IDC\_DB,m\_sDB);
                          AfxGetApp()->WriteProfileString("Connection", "Database",m\_sDB);
                          

                          }
                          //seccond browse button
                          void CAddEquipDlg::OnBnClickedBrowseequip()
                          {

                          char szFilters\[\]=
                              "CSV Files (\*.csv)|\*.csv|All Files (\*.\*)|\*.\*||";
                          
                          CFileDialog fDlg(TRUE,
                              "csv",
                              "\*.csv",
                              OFN\_FILEMUSTEXIST| OFN\_HIDEREADONLY,
                              szFilters, 
                              NULL
                              );
                          if (fDlg.DoModal()==IDOK)
                          {
                              CString bla = fDlg.GetFileTitle();
                              m\_sEQUIP = fDlg.GetPathName();
                          }
                          SetCurrentDirectory(m\_sCurDir);
                          SetDlgItemText(IDC\_EQUIP,m\_sEQUIP);    
                          

                          }

                          It crashes two out of tree times (with a send/don't send error message in release) and this is the debug info

                          First-chance exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.
                          Unhandled exception at 0x7ca5159e in AddEquip.exe: 0xC0000005: Access violation reading location 0x62883720.

                          D Offline
                          D Offline
                          David Crow
                          wrote on last edited by
                          #13

                          eusto wrote:

                          If i press the frist one, select a file than press the seccond one, my application crashes...

                          What happens if you reverse this process? Which of the four statements after DoModal() is crashing? Set a breakpoint to find out.


                          "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                          "Judge not by the eye but by the heart." - Native American Proverb

                          E 1 Reply Last reply
                          0
                          • R Rajesh R Subramanian

                            Did you try displaying a message box before and after your CFileDialog creation? What happens in that case?


                            Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                            E Offline
                            E Offline
                            eusto
                            wrote on last edited by
                            #14

                            it dies only if there's verry little time between pressing the two buttons. If i put a message box anywhere...it will work

                            1 Reply Last reply
                            0
                            • D David Crow

                              eusto wrote:

                              If i press the frist one, select a file than press the seccond one, my application crashes...

                              What happens if you reverse this process? Which of the four statements after DoModal() is crashing? Set a breakpoint to find out.


                              "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                              "Judge not by the eye but by the heart." - Native American Proverb

                              E Offline
                              E Offline
                              eusto
                              wrote on last edited by
                              #15

                              None of the four statements after DoModal() is crashing!..none! DoModal() doesn't even return. Anyways, i've narrowed it down. It crashes when i move trough folders in the CFileDialog window. And it doesn't really matter wich of the two buttons i press first.

                              D 1 Reply Last reply
                              0
                              • E eusto

                                None of the four statements after DoModal() is crashing!..none! DoModal() doesn't even return. Anyways, i've narrowed it down. It crashes when i move trough folders in the CFileDialog window. And it doesn't really matter wich of the two buttons i press first.

                                D Offline
                                D Offline
                                David Crow
                                wrote on last edited by
                                #16

                                This is just a complete guess, but how about commenting out everything after the DoModal() call?


                                "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                                "Judge not by the eye but by the heart." - Native American Proverb

                                E 1 Reply Last reply
                                0
                                • D David Crow

                                  This is just a complete guess, but how about commenting out everything after the DoModal() call?


                                  "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                                  "Judge not by the eye but by the heart." - Native American Proverb

                                  E Offline
                                  E Offline
                                  eusto
                                  wrote on last edited by
                                  #17

                                  this was my last resort too but it still failed :(. I'm putting this thing to rest and i'll get to it some other time... Maybe there's a problem with my computer( a virus or smth...don't know ). The problem is clearly in the CFileDialog class but i can't figure it out.

                                  D 1 Reply Last reply
                                  0
                                  • E eusto

                                    this was my last resort too but it still failed :(. I'm putting this thing to rest and i'll get to it some other time... Maybe there's a problem with my computer( a virus or smth...don't know ). The problem is clearly in the CFileDialog class but i can't figure it out.

                                    D Offline
                                    D Offline
                                    David Crow
                                    wrote on last edited by
                                    #18

                                    eusto wrote:

                                    The problem is clearly in the CFileDialog class...

                                    To further verify that, use GetOpenFileName() instead.


                                    "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                                    "Judge not by the eye but by the heart." - Native American Proverb

                                    E 2 Replies Last reply
                                    0
                                    • D David Crow

                                      eusto wrote:

                                      The problem is clearly in the CFileDialog class...

                                      To further verify that, use GetOpenFileName() instead.


                                      "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                                      "Judge not by the eye but by the heart." - Native American Proverb

                                      E Offline
                                      E Offline
                                      eusto
                                      wrote on last edited by
                                      #19

                                      I've used GetOpenFileName() and it behaves just the same :(

                                      1 Reply Last reply
                                      0
                                      • D David Crow

                                        eusto wrote:

                                        The problem is clearly in the CFileDialog class...

                                        To further verify that, use GetOpenFileName() instead.


                                        "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                                        "Judge not by the eye but by the heart." - Native American Proverb

                                        E Offline
                                        E Offline
                                        eusto
                                        wrote on last edited by
                                        #20

                                        Nevermind, sorry for bugging you so much. I've recompiled the project on another machine and it works like a charm. I guess the problem is in my VStudio instalation or something...i don't know

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Categories
                                        • Recent
                                        • Tags
                                        • Popular
                                        • World
                                        • Users
                                        • Groups