2008-08-20 17 views
6

sabit enum için aralık dışında:Uyarı C4341 - 'XX': Ne Çeşidi 104 uyarıları almak benim C++ .Net uygulamasını derlerken değeri imzalı

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

XX olabilir Nerede

  • WCHAR
  • uzun
  • BIT
  • İKİLİ
  • GUID
  • ... Ben ne yaparsak bu uyarıları kaldırmak için görünmüyor olabilir

. Onlara iki kez tıkladığımda, OdbcParameters kullanan kodumun bir parçasına götürürüm - herhangi bir test projesini denediğimde her şeyimle ama hiçbir OdbcParameters bu uyarıları vermez.

Bu uyarılardan nasıl kurtulabilirim? Gördüğüm kadarıyla gerçekte yazdığım koddan gerçek uyarılar yapıyorlar - ve benim uyguladığımın 104 uyarı olduğunu bilerek bana korkunç bir his veriyor! Visual Studio

cevap

4

Bu compiler bug olduğunu . İşte bilinen bir sorunu onaylayan another post. Projelerimden birinde aynı sorunu yaşıyorum ve OdbcParameter kullanımından kaçınmanın bir yolu yoksa, tetiklenmesini önlemenin bir yolu yok. Sadece arabası uyarıları bastırmak için en muhafazakar yolu

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

// code affected by bug 

#pragma warning(pop) 
3

her zaman giderek belirli uyarıları devre dışı bırakabilirsiniz:

Proje ayarlarında -> C/C++ -> Gelişmiş -> Özgül uyarıları devre dışı bırakın: 4341

0

kullanmak Ya derleyici düzeltme için bekleyin ya da tetikleyen #include kodu yok etmektir.

[Muhtemelen yapamayacağınızı gösteren ayrıntılı bir yol.]