Giriş
Bu makalede açıklanan düzeltme, Microsoft Visual Studio 2010'de aşağıdaki sorunları giderir.
Sorun 1
Kaynak kodunda döngüleri olan bir uygulamayı çalıştırdığınızda beklenmeyen davranışlarla karşılaşabilirsiniz. Kaynak kodunu genel en iyi duruma getirme ile derlenmişse, bu sorun oluşur (/ Og) etkin.
Sorun 2
Aşağıdaki senaryoyu düşünün:
-
Atlcomcli.h dosyasını içeren bir Visual C++ projesinin var.
-
/J derleyici seçeneği tanımlamak için belirttiğiniz_CHAR_UNSIGNEDmakro projesi içinde.
-
Siz projeyi derleyin.
Bu senaryoda, aşağıdaki hata iletilerinden birini alabilirsiniz:
-
hata C2338: < char > CVarTypeInfo /J veya _CHAR_UNSIGNED bayrağı etkin ile derlenmiş olamaz
-
hata C2338: CVarTypeInfo < char * > etkin /J veya _CHAR_UNSIGNED bayrağı ile derlenmiş olamaz
Sorun 3
Bir x86 tabanlı Windows sürümü için oluşturulmuş bir Visual C++ uygulamasını çalıştırdığınızda erişim ihlali oluşuyor. Uygulama iki dizi türü giriş bağımsız değişkenleri olan bir ifade ağacı olduğunda bu sorun oluşur.
Neden
1 sorunun nedenini
Bu sorun, yanlış döngü optimizasyon yürütülen oluşur. Bu, hatalı kod üretimi neden olur.
2 sorunun nedenini
Atlcomcli.h dosyasında statik onayları /J seçeneği ve CHAR_UNSIGNED makro için yanlış ayarlandığından, bu sorun oluşur.
Sorunun 3
İtme yönergeleri değişkenlerinde karışık çünkü bu sorun oluşur. Bu nedenle, yönergeleri itmek için yanlış bağımsız değişken geçirilir.
Daha fazla bilgi
Düzeltme bilgileri
Artık Microsoft tarafından desteklenen bir düzeltme sağlanmaktadır. Ancak bunun yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Yalnızca bu özel sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltme ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilemiyorsa, sonraki Visual Studio, bu düzeltmeyi içeren 2010 için beklemeniz önerilir.
Bu sorunu hemen düzeltmek için düzeltmeyi edinmek üzere Microsoft Müşteri Destek Hizmetleri'ne başvurun. Microsoft Müşteri Destek Hizmetleri telefon numaralarının ve destek ücretleriyle ilgili bilgi tam listesi için aşağıdaki Microsoft Web sitesini ziyaret edin:http://support.microsoft.com/contactus/?ws=supportNot: Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.
Önkoşullar
Visual Studio 2010 bu düzeltmeyi uygulamak için yüklü olması gerekir.
Yeniden başlatma gereksinimi
Etkilenen bir dosyayı kullanılıyorsa, bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez.
Düzeltme değiştirme bilgileri
Bu düzeltme eki, başka düzeltmelerin yerini almaz.
Dosya bilgileri
Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'te (UTC) listelenmiştir. Dosya bilgilerini görüntülediğinizde koordinatlı evrensel saat yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için kullanın. Saat dilimi sekmesinde Tarih ve saat Denetim Masası'ndaki öğe.
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
C2.dll |
16.0.30319.314 |
2,510,144 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,588,480 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,630,976 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,977,600 |
30-May-2010 |
20:48 |
x64 |
C2.dll |
16.0.30319.314 |
7,351,616 |
30-May-2010 |
20:48 |
IA-64 |
Geçici çözüm
Sorun 1'için geçici çözüm
Bu soruna geçici bir çözüm bulmak için en iyi duruma getirme Genel devre dışı bırakın. Global optimizasyon devre dışı bırakma hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
216181 DÜZELTME: yanlış kod /Og iyileştirme ile oluşturulan
Sorun 2'için geçici çözüm
Bu soruna geçici bir çözüm için Atlcomcli.h dosyası eklemek için aşağıdaki pragma yönergesini kullanın.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT #define ATLSTATIC_ASSERT(x,y) #include <atlcomcli.h> #undef ATLSTATIC_ASSERT #pragma pop_macro("ATLSTATIC_ASSERT")