Как справиться с ошибкой отладки этого утверждения

Я отлаживаю код, который генерирует пять файлов dxf. Все работает корректно для первого поколения. Как только я начинаю создавать второй файл dxf, я получаю эту ошибку.

Как справиться с ошибкой отладки этого утверждения

Может ли кто-нибудь помочь мне и объяснить мне проблему. Я не могу опубликовать весь код, потому что код очень большой. заранее спасибо

Вы знаете, что такое «утверждение»?

j6t 23.03.2022 10:28

Если честно нет. Я знаю общий смысл, но не смысл в моем случае.

Zac Boussaid 23.03.2022 11:01

Не самое дружелюбное объяснение, но все же: Википедия

j6t 23.03.2022 12:47

Вы можете, по крайней мере, «отладить» его и посмотреть на «стек вызовов», чтобы определить «путь», по которому он пришел к этому исключению, и они сами вернутся к этим вызовам функций и попытаются изолировать проблему.

Andrew Truckle 24.03.2022 10:02

Также обратите внимание, что «Утверждение отладки», скорее всего, означает, что ASEERT(...) не удалось. Они выполняются только в режиме DEBUG. Это означает, что какое-то условие не было выполнено. Вам дается имя файла CPP и строка кода, так что это ваша отправная точка.

Andrew Truckle 24.03.2022 10:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Причина этого сбоя заключалась в том, что я неправильно использовал эти два типа данных:

  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; }

 };

Имя слоя и имя типа линии должны быть wstring. Константа wchar_t* не разрешена и приводит к сбою моего отладчика. Извините, я не опубликовал код, так как он очень обширный, и я не смог увидеть конкретное место ошибки. Надеюсь, это поможет вам, ребята.

Молодец, что отследил проблему. Отладка всегда помогает. ?

Andrew Truckle 26.03.2022 08:24

Спасибо @andrew Truckle. Но другой совет. Microsoft Visual Studio не очень помогла мне в отслеживании проблем, поэтому я рекомендую вам использовать другой отладчик, такой как отладчик Windows, если вы получаете общие ошибки сбоя.

Zac Boussaid 27.03.2022 10:28

Другие вопросы по теме