Belirtiler
Aşağıdaki senaryoyu inceleyin:
-
Bir Visual C++ 2010 projesi var. Kaynak kodu Proje yapısı veya 64 bayt aşan sınıfı vardır.
-
X64 tabanlı platform için projeyi derleyin ve /O2 derleyici seçeneği kullanın.
-
Uygulamayı çalıştırma.
Bu senaryoda, erişim ihlali oluşuyor ve uygulama çöker.
Neden
Visual Studio 2010 'un x64 tabanlı derleyici kodu 64 bayt veri için 16 bayt ayırma hizalamasını ayarlama tarafından en iyi hale getirir çünkü bu sorun oluşur. Bu nedenle, bir bellek sorunu 64 bayt aşan nesneleri için 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 sorunla karşılaşmış olan 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. Bu düzeltmeyi MSDN kod Galerisi'nden yüklemek için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://code.msdn.microsoft.com/KB2280741Not MSDN Kod Galerisi'nde düzeltmenin kullanılabilir olduğu diller görüntülenir. Kendi dilinizi görmüyorsanız, bu dil için kod Galerisi kaynak sayfası kullanılamıyor demektir. 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. Tam listesi Microsoft Müşteri Hizmetleri ve destek telefon numaralarını veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=supportAyrıca, aşağıdaki Microsoft Web sitesini ziyaret ederek bu düzeltmeyi yükleyebilirsiniz:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
Ön koşullar
Bu düzeltmeyi uygulamak için Visual Studio 2010 yüklü olması gerekir.
Yeniden başlatma gereksinimi
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 öznitelikleri) sahiptir. Bu dosyalarla ilgili tarihler ve saatler Eşgüdümlü Evrensel Saat (UTC) kullanılarak listelenmiştir. Dosya bilgilerini görüntülediğinizde 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 |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
Çözüm
Bu soruna geçici bir çözüm için projeyi oluşturduğunuzda /O2 derleyici seçeneğini kullanmayın.
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.