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 Offline
    E Offline
    eusto
    wrote on last edited by
    #1

    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 C R D 4 Replies 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.

      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