Warnung C4341 - 'XX':unterzeichnet Wert liegt außerhalb des Bereichs für die enum-Konstanten

StackOverflow https://stackoverflow.com/questions/17786

  •  09-06-2019
  •  | 
  •  

Frage

Beim kompilieren meiner C++ .Net-Anwendung, die ich bekommen 104 Warnungen der Art:

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

Wobei XX

  • WCHAR
  • LANGE
  • BIT
  • BINÄR
  • GUID
  • ...

Ich kann nicht scheinen, diese zu entfernen, Warnungen, was ich tun.Wenn ich Doppel-klicken Sie auf Sie, es nimmt mir ein Teil von meinem code, der verwendet OdbcParameters - alle, wenn ich versuche, ein test-Projekt mit all dem rest meiner Sachen, aber keine OdbcParameters es gibt nicht die Warnungen.

Irgendeine Idee, wie kann ich loszuwerden, diese Warnungen?Sie machen Echtzeit-Warnungen für code habe ich selbst geschrieben-kaum zu sehen - und es gibt mir ein schreckliches Gefühl zu wissen, dass meine app hat 104 Warnungen!

War es hilfreich?

Lösung

Dies ist eine compiler-Fehler.Hier s ein weiterer Beitrag Bestätigung das es ein bekanntes Problem.Ich habe das gleiche Problem in einem meiner Projekte und es gibt keine Möglichkeit zu verhindern, dass es ausgelöst wird, es sei denn, Sie haben etwas Weg von der Vermeidung der Verwendung von OdbcParameter.Die meisten konservativen Weg zu unterdrücken, wird nur der buggy-Warnungen zu verwenden

#pragma warning( push )
#pragma warning( disable: 4341 )

// code affected by bug

#pragma warning( pop )

Andere Tipps

In Visual Studio können Sie immer deaktivieren Sie die spezifischen Warnungen an:

Project settings -> C/C++ -> Advanced -> Disable Besondere Warnhinweise:4341

Entweder warten, bis ein compiler-Update oder nicht #include code, den es auslöst.

[Eine ausführliche Art zu sagen, Sie können sich wahrscheinlich nicht.]

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top