Сведения о вопросе

Htmlщик

23:04, 6th August, 2020

Теги

.net   c++   visual-c++    

Предупреждение C4341-'XX': знаковое значение выходит за пределы диапазона для константы перечисления

Просмотров: 376   Ответов: 3

При компиляции моего приложения C++ .Net я получаю 104 предупреждения типа:

Warning C4341 - 'XX': signed value is out of range for enum constant

Где XX может быть

  • WCHAR
  • LONG
  • BIT
  • BINARY
  • GUID ...
  • Я не могу удалить эти предупреждения, что бы я ни делал. Когда я дважды нажимаю на них, это приводит меня к части моего кода, которая использует OdbcParameters-любой, когда я пробую тестовый проект со всеми rest моих вещей, но нет OdbcParameters, он не дает предупреждений.

    Есть идеи, как я могу избавиться от этих предупреждений? Они делают реальные предупреждения из кода, который я на самом деле написал трудно увидеть - и это просто дает мне ужасное чувство, зная, что мое приложение имеет 104 предупреждения!



      Сведения об ответе

    SKY

    21:06, 1st October, 2020

    Это ошибка компилятора . Вот еще один пост , подтверждающий, что это известная проблема. У меня такая же проблема в одном из моих проектов, и нет никакого способа предотвратить ее запуск, если у вас нет способа избежать использования OdbcParameter. Самый консервативный способ подавить только предупреждения о багги-использовать

    #pragma warning( push )
    #pragma warning( disable: 4341 )
    
    // code affected by bug
    
    #pragma warning( pop )
    


      Сведения об ответе

    SILA

    12:33, 12th August, 2020

    В Visual Studio вы всегда можете отключить определенные предупреждения, перейдя к:

    Настройки проекта - > C/C++ - > дополнительно - > отключить определенные предупреждения: 4341


      Сведения об ответе

    ЯЯ__4

    04:43, 29th August, 2020

    Либо дождитесь исправления компилятора, либо не используйте код, который его запускает.

    [Многословный способ сказать, что вы, вероятно, не можете.]


    Ответить на вопрос

    Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться