-1

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

Zac Boussaid
  • 35
  • 1
  • 8
  • Do you know what an "assertion" is? – j6t Mar 23 '22 at 09:28
  • To be honest, no. I know the general meaning, but not the meaning in my case. – Zac Boussaid Mar 23 '22 at 10:01
  • Not the most friendly explanation, but still: [Wikipedia](https://en.wikipedia.org/wiki/Assertion_(software_development)) – j6t Mar 23 '22 at 11:47
  • You can atleast "debug" it and look at the "call stack" to identify the "path" it was taking to end up at this exception and them work yourself back through those function calls and try to isolate the issue. – Andrew Truckle Mar 24 '22 at 09:02
  • 1
    Also, note that a "Debug Assertion" most likely means that a `ASEERT(...)` failed. These only execute in DEBUG mode. It means a certain condition was not met. You are given the CPP file name and line of code it happened, So that is your starting point. – Andrew Truckle Mar 24 '22 at 09:04

1 Answers1

0

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.

Andrew Truckle
  • 17,769
  • 16
  • 66
  • 164
Zac Boussaid
  • 35
  • 1
  • 8
  • Well done for tracking down the issue. Debugging always helps. – Andrew Truckle Mar 26 '22 at 07:24
  • 1
    Thank you @andrew Truckle. But another advice. The Microsoft Visual Studio did not help me a lot to track the problems, so I recommend you to use another debugger like windows debbuger, if you get general crash errors. – Zac Boussaid Mar 27 '22 at 08:28