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. Problem with CString! CXX0017

Problem with CString! CXX0017

Scheduled Pinned Locked Moved C / C++ / MFC
helpcomdebuggingquestionworkspace
20 Posts 5 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.
  • C Cedric Moonen

    Use the callstack to see in which of YOUR function the code crashes. Then put a breakpoint at the begining of this function and step by step to see which instruction makes your program crash.


    Cédric Moonen Software developer
    Charting control

    T Offline
    T Offline
    tanarnelinistit
    wrote on last edited by
    #11

    Cedric Moonen wrote:

    Use the callstack to see in which of YOUR function the code crashes. Then put a breakpoint at the begining of this function and step by step to see which instruction makes your program crash.

    The line that makes my program crash: if (str2=="FFFF00000000028C") m_pSet->m_Nume="Gigi"; else m_pSet->m_Nume="Ionica"; Because that's a line on which I have str2 the variable that is defined and initiated with a value, but which I can't see. -- modified at 8:53 Wednesday 26th July, 2006

    D C 2 Replies Last reply
    0
    • T tanarnelinistit

      Christian Graus wrote:

      We need the line number and file as well, if we're to see it in context.

      File wincore.cpp Line 883.

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

      tanarnelinistit wrote:

      File wincore.cpp Line 883.

      This is apparently not with VC++ v6. Correct?


      "Money talks. When my money starts to talk, I get a bill to shut it up." - Frank

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

      T 1 Reply Last reply
      0
      • T tanarnelinistit

        Cedric Moonen wrote:

        Use the callstack to see in which of YOUR function the code crashes. Then put a breakpoint at the begining of this function and step by step to see which instruction makes your program crash.

        The line that makes my program crash: if (str2=="FFFF00000000028C") m_pSet->m_Nume="Gigi"; else m_pSet->m_Nume="Ionica"; Because that's a line on which I have str2 the variable that is defined and initiated with a value, but which I can't see. -- modified at 8:53 Wednesday 26th July, 2006

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

        tanarnelinistit wrote:

        if (str2=="FFFF00000000028C") m_pSet->m_Nume="Gigi";

        Put a breakpoint on the if statement and single-step (F10) from there.


        "Money talks. When my money starts to talk, I get a bill to shut it up." - Frank

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

        1 Reply Last reply
        0
        • T tanarnelinistit

          I use the folowing code to listen the com: void CMina_sView::OnListenCom1() { running = TRUE; AfxBeginThread(run,this); } void CMina_sView::ascultarea() { CSerial serial; LONG lLastError = ERROR_SUCCESS; DWORD dwBytesRead = 0 ; char szBuffer[21]; CString str2="jjk"; char of[5]= "Addd"; int i=10; const int nBuflen = sizeof(szBuffer)-1; lLastError = serial.Open(_T("COM1"),0,0,false); lLastError = serial.Setup(CSerial::EBaud9600,CSerial::EData8,CSerial::EParNone,CSerial::EStop1); lLastError = serial.SetMask(CSerial::EEventBreak | CSerial::EEventCTS | CSerial::EEventDSR | CSerial::EEventError | CSerial::EEventRing | CSerial::EEventRLSD | CSerial::EEventRecv); lLastError = serial.SetupReadTimeouts(CSerial::EReadTimeoutNonblocking); lLastError = serial.WaitEvent(); const CSerial::EEvent eEvent = serial.GetEventType(); if (eEvent & CSerial::EEventRecv) { while (running) {Sleep(300); dwBytesRead = 0; serial.Read(szBuffer,nBuflen,&dwBytesRead); szBuffer[dwBytesRead] = '\0'; str2.TrimLeft(); str2.TrimRight(); str2.TrimLeft(); str2.TrimRight(); // do smth with str2 } } //Sleep(0); running = FALSE; serial.Close(); } UINT CMina_sView::run(LPVOID p) { CMina_sView * me = (CMina_sView *)p; me->ascultarea(); return 0; } If I run the program I get an error. If I run it in debug mode I when try to watch str2 i get the error: "symbol "str2" not found" What's wrong? I can watch any other variable.

          J Offline
          J Offline
          James R Twine
          wrote on last edited by
          #14

          IME, symbol "str2" not found errors in the debugger are due to one of four things:      1: You typed the identifier incorrectly      2: You are in the wrong context      3: You are trying to view a static variable (VC++ 6.0)      4: You have overrun/underrun a buffer    Given that you are also getting additional errors, I would research #4.    Peace!

          -=- James


          If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
          Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
          DeleteFXPFiles & CheckFavorites (Please rate this post!)

          T 1 Reply Last reply
          0
          • D David Crow

            tanarnelinistit wrote:

            File wincore.cpp Line 883.

            This is apparently not with VC++ v6. Correct?


            "Money talks. When my money starts to talk, I get a bill to shut it up." - Frank

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

            T Offline
            T Offline
            tanarnelinistit
            wrote on last edited by
            #15

            DavidCrow wrote:

            This is apparently not with VC++ v6. Correct?

            No, it is with VC++ v6.0. The error is comming from using the str2 CString variable. If I dont use any reference to it there is no problem.

            D 1 Reply Last reply
            0
            • J James R Twine

              IME, symbol "str2" not found errors in the debugger are due to one of four things:      1: You typed the identifier incorrectly      2: You are in the wrong context      3: You are trying to view a static variable (VC++ 6.0)      4: You have overrun/underrun a buffer    Given that you are also getting additional errors, I would research #4.    Peace!

              -=- James


              If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
              Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
              DeleteFXPFiles & CheckFavorites (Please rate this post!)

              T Offline
              T Offline
              tanarnelinistit
              wrote on last edited by
              #16

              James R. Twine wrote:

              You have overrun/underrun a buffer

              What do you mean by that? If I don't use multithreads I don't get an error.

              D 1 Reply Last reply
              0
              • T tanarnelinistit

                Cedric Moonen wrote:

                Use the callstack to see in which of YOUR function the code crashes. Then put a breakpoint at the begining of this function and step by step to see which instruction makes your program crash.

                The line that makes my program crash: if (str2=="FFFF00000000028C") m_pSet->m_Nume="Gigi"; else m_pSet->m_Nume="Ionica"; Because that's a line on which I have str2 the variable that is defined and initiated with a value, but which I can't see. -- modified at 8:53 Wednesday 26th July, 2006

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

                Where does this code come from ?? :confused: Please, when you post something give the complete information. This has absolutely nothing to do with the first code snippet you posted. So how can we guess what the problem is :| ? What is this m_pSet and what is its value ? Is it a valid address ?


                Cédric Moonen Software developer
                Charting control

                1 Reply Last reply
                0
                • T tanarnelinistit

                  James R. Twine wrote:

                  You have overrun/underrun a buffer

                  What do you mean by that? If I don't use multithreads I don't get an error.

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

                  tanarnelinistit wrote:

                  If I don't use multithreads I don't get an error.

                  Most likely the problem is still present and is simply being masked by some other operation.


                  "Money talks. When my money starts to talk, I get a bill to shut it up." - Frank

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

                  T 1 Reply Last reply
                  0
                  • T tanarnelinistit

                    DavidCrow wrote:

                    This is apparently not with VC++ v6. Correct?

                    No, it is with VC++ v6.0. The error is comming from using the str2 CString variable. If I dont use any reference to it there is no problem.

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

                    tanarnelinistit wrote:

                    No, it is with VC++ v6.0.

                    Line 883 of wincore.cpp does not have any ASSERT() statements. Here are the first few lines of code in the AssertValid() method:

                    #ifdef _DEBUG
                    void CWnd::AssertValid() const
                    {
                    if (m_hWnd == NULL)
                    return; // null (unattached) windows are valid

                    // check for special wnd??? values
                    ASSERT(HWND\_TOP == NULL);       // same as desktop
                    if (m\_hWnd == HWND\_BOTTOM)
                    	ASSERT(this == &CWnd::wndBottom);
                    else if (m\_hWnd == HWND\_TOPMOST)
                    	ASSERT(this == &CWnd::wndTopMost);
                    else if (m\_hWnd == HWND\_NOTOPMOST)
                    	ASSERT(this == &CWnd::wndNoTopMost);
                    else                                             // line 883
                    

                    ...


                    "Money talks. When my money starts to talk, I get a bill to shut it up." - Frank

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

                    1 Reply Last reply
                    0
                    • D David Crow

                      tanarnelinistit wrote:

                      If I don't use multithreads I don't get an error.

                      Most likely the problem is still present and is simply being masked by some other operation.


                      "Money talks. When my money starts to talk, I get a bill to shut it up." - Frank

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

                      T Offline
                      T Offline
                      tanarnelinistit
                      wrote on last edited by
                      #20

                      DavidCrow wrote:

                      Most likely the problem is still present and is simply being masked by some other operation.

                      With all respect it can not be posible to have the problem when I don't use multithreads because i use str2 to edit a field in the database and that works fine. I run the program just fine.

                      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