c++debuggingassertiondxfteigha

how to deal with this assertion debug failure


I am debugging a code that generates five dxf files. Everything works correctly for the first generation. As soon as I start creating the second dxf file I get this error.

enter image description here

Could someone help me and explain me the problem. I am not able to post the whole code because the code is very big. thanks in advance


Solution

  • The reason for this failure was that I used these two data types in the wrong way:

    1. const wchar_t*
    2. wstring
    class KDXFDWGWRAPPERTEIG_API K_ArcParameter {
       private:
          struct K_2DPoint { double m_point_1; double m_point_2; };
    
          K_Teigha3DPoint m_arcCenter{ 0.0, 0.0, 0.0 };
          K_Teigha3DPoint m_arcNormal{ 1.0, 1.0, 0.0 };
          K_2DPoint     m_arcAngleParameter{ 0.0, 3.14 };
          K_DxfDwgColor m_defColor;
          double            m_radius = 1.0;
          double            m_thickness = 0.5;
          const wchar_t*         m_layerName = L""; // error is here
          const wchar_t*            m_lineType = L"";// error is here
       public:
    
        // C-Tor
        K_ArcParameter(K_Teigha3DPoint pArcCenter, K_Teigha3DPoint pArcNormal, K_2DPoint pArcAngleParameter, double pRadius) :
            m_arcCenter(pArcCenter), m_arcNormal(pArcNormal), m_arcAngleParameter(pArcAngleParameter), m_radius(pRadius), m_defColor(0x000000ff) {};
        K_ArcParameter(K_Teigha3DPoint pArcCenter, K_Teigha3DPoint pArcNormal,K_2DPoint pArcAngleParameter, double pRadius, double pThickness, wstring& pLayerName, wstring& pLineType) :
            m_arcCenter(pArcCenter), m_arcNormal(pArcNormal), m_arcAngleParameter(pArcAngleParameter), m_radius(pRadius), m_thickness(pThickness), m_layerName(pLayerName), m_lineType(pLineType), m_defColor(0x000000ff) {};
        K_ArcParameter(K_Teigha3DPoint pArcCenter, K_Teigha3DPoint pArcNormal, K_2DPoint pArcAngleParameter, K_DxfDwgColor pDefColor, double pRadius, double pThickness, wstring& pLayerName, wstring& pLineType) :
            m_arcCenter(pArcCenter), m_arcNormal(pArcNormal), m_arcAngleParameter(pArcAngleParameter), m_defColor(pDefColor), m_radius(pRadius), m_thickness(pThickness), m_layerName(pLayerName), m_lineType(pLineType) {};
        
        //methods
        K_Teigha3DPoint         getArcCenterPoint()     const { return m_arcCenter; }
        K_Teigha3DPoint         getArcNormal()      const { return m_arcNormal; }
        K_2DPoint               getArcAngleParameter()      const { return m_arcAngleParameter; }
        K_DxfDwgColor           getColor()      const { return m_defColor; }
        double                  getRadius()     const { return m_radius; }
        double                  getThickness()      const { return m_thickness; }
        wstring                 getLayerName()      const { return m_layerName; }
        wstring                 getLineTypeName()       const { return m_lineType; }
        bool                    IsLineTypeByLayer()     const { return false; }
    
     };
    

    The layer name and linetype name must be wstring. The const wchar_t* is not allowed and crashes my debugger. I'm sorry I didn't post the code as it's very extensive and I wasn't able to see the specific error location. I hope this can help you guys.