如何处理这个断言调试失败
how to deal with this assertion debug failure
我正在调试生成五个 dxf 文件的代码。第一代一切正常。一旦我开始创建第二个 dxf 文件,我就会收到此错误。
谁能帮我解释一下这个问题。我无法 post 整个代码,因为代码非常大。
提前致谢
这次失败的原因是我用错了这两种数据类型:
const wchar_t*
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; }
};
图层名称和线型名称必须是wstring
。不允许使用 const wchar_t*
并使我的调试器崩溃。很抱歉我没有 post 代码,因为它非常广泛而且我无法看到具体的错误位置。
希望对大家有所帮助。
我正在调试生成五个 dxf 文件的代码。第一代一切正常。一旦我开始创建第二个 dxf 文件,我就会收到此错误。
谁能帮我解释一下这个问题。我无法 post 整个代码,因为代码非常大。 提前致谢
这次失败的原因是我用错了这两种数据类型:
const wchar_t*
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; }
};
图层名称和线型名称必须是wstring
。不允许使用 const wchar_t*
并使我的调试器崩溃。很抱歉我没有 post 代码,因为它非常广泛而且我无法看到具体的错误位置。
希望对大家有所帮助。