Belirtiler
X64 üzerinde yapılandırılmış bir uygulama oluşturduğunuzda /Ot (Hediyesi hızlı kodu) derleyici seçeneğini kullanın Microsoft Visual Studio 2005 Service Pack 1 (SP1) içindeki platform. Uygulamayı çalıştırdığınızda , bazı ifadeleri hatalı çalışabilir. Bu nedenle, sonuçlar tahmin edilemez. Örneğin, uygulamanın oluşturulan kod , ifadeleri atlanabilir.
Bu sorun, yalnızca aşağıdaki senaryoda oluşur.
-
İki karşılaştırma işlemleri arasındaki bazı MOV yönergeler vardır.
-
Bunlar aynı işlenen işlemler kullanmak karşılaştırın.
-
MOV yönergeleri tarafından işlenen değerleri değiştirilir.
Bu senaryoda, ikinci karşılaştırma işlemi ise deyimlerinde atlanabilir.
Notlar
-
Uygulamayı oluşturmak için /O2 veya /Ox seçeneğini kullandığınızda bu sorun da ortaya çıkabilir.
-
X86 üzerinde bu sorun ortaya çıkmaz platformu.
Neden
XOR işlem tarafından ayarlanmış bayrağı karşılaştırma işlemi dahil olmak üzere kullanılabilir derleyici iyileştirici yanlış kabul ettiği için bu sorun oluşur.
Çözüm
Düzeltme bilgileri
Microsoft, desteklenen bir düzeltmeyi kullanıma sunmuştur. Ancak bu düzeltme yalnızca bu makalede anlatılan sorunu düzeltmek amacıyla hazırlanmıştır. Bu düzeltmeyi yalnızca bu makalede açıklanan sorunun yaşandığı sistemlere uygulayın. Bu düzeltme, ek test süreci gerektirebilir. Bu nedenle bu sorundan ciddi bir şekilde etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki yazılım güncelleştirmesini beklemeniz önerilir.
İndirilebilir bir düzeltme varsa, bu Bilgi Bankası makalesinin üst kısmında "Düzeltme İndirilebilir" bölümü bulunur. Bu bölüm görünmüyorsa, düzeltmeyi edinmek üzere Microsoft Müşteri Hizmetleri ve Destek'e başvurun.
Not: Ek sorunlar oluşursa veya sorun giderme gerekiyorsa, ayrı bir hizmet isteği oluşturmanız gerekebilir. Ek destek sorularına ve bu düzeltme için geçerli olmayan sorunlara normal destek ücretleri uygulanır. Microsoft Müşteri Hizmetleri ve Destek bölümünün tam liste telefon numaralarına ulaşmak veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=supportNot: "Düzeltme indirilebilir” formu, düzeltmenin indirilebildiği dilleri görüntüler. Kendi dilinizi görmüyorsanız, bu dil için bir düzeltme mevcut değil demektir.
Önkoşullar
Visual Studio 2005 SP bu düzeltmeyi uygulamak için 1'in yüklü olması gerekir.
Yeniden başlatma gereksinimi
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 Denetim Masası'ndaki Tarih ve Saat öğesinde Saat Dilimi sekmesini kullanın.
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
C2.dll |
14.0.50727.3080 |
2,273,280 |
19-Kas-2008 |
18:52 |
x86 |
C2.dll |
14.0.50727.3080 |
7,192,576 |
19-Kas-2008 |
23:25 |
IA-64 |
C2.dll |
14.0.50727.3080 |
2,490,368 |
19-Kas-2008 |
23:26 |
x86 |
C2.dll |
14.0.50727.3080 |
3,600,384 |
19-Kas-2008 |
23:33 |
x64 |
C2.dll |
14.0.50727.3080 |
2,203,648 |
19-Kas-2008 |
23:33 |
x86 |
Geçici çözüm
Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın:
-
Yoksa deyimlerinde kullanılan değişkenleri bildirirken geçici anahtar sözcüğünü kullanın.
-
Hızı en iyileştirme seçeneğini devre dışı bırakın. Örneğin, /Ot seçeneği /Os (Hediyesi küçük kod) seçeneği ile değiştirin. Veya /O2 veya /Ox seçeneği yerine /O1 seçeneğini kullanın.
-
İkincisi ise deyimlerinde karşılaştırma işlemi önce bir kod satırını ekleyin. Örneğin, printf ifade daha ekleyin.
Durum
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Daha fazla bilgi
İfadeleri, Visual Studio 2005'te kodu en iyi duruma getirme özelliğini kullandığınızda hatalı çalışabilir bir veya daha fazla kod 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:
925792 Visual Studio 2005'te kodu en iyi duruma getirme özelliğini kullanırken bir veya daha fazla kod deyimleri hatalı çalışabilir
Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
824684 Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması