Belirtiler

Bir program Microsoft Visual C++ 2013 kullanarak oluşturduğunuzda, program çöküyor ve "Geçersiz yönerge" istisna alırsınız. Bu işlevler bunları kullanmayı denemeden önce AVX ve FMA3 belirli yönergeler kullanılıp kullanılamayacağını bazı Visual C++ 2013 x64 C çalışma zamanında (CRT) kayan nokta matematik kitaplığı işlevleri düzgün denetlemez nedeniyle oluşur. Yönergeleri kullanıma hazır değilseniz, bu işlevlere olan çağrıları geçersiz yönerge istisna (0xc000001d) neden. Günlük, log10 ve pow ve diğer etkilenen işlevler içerir.Bu sorun aşağıdaki senaryolarda oluşabilir:

  • AVX yönerge kümesini destekleyen bir bilgisayarda kullanılıp kullanılmadığını AVX desteklemeyen Windows işletim sisteminin eski bir sürümü (örneğin, Windows Vista'yı) belirtin

  • AVX durumunu kaydetme işletim sistemi önyükleme yapılandırmasında açıkça devre dışı bırakılmışsa

  • Windows Önkurulum Ortamı (Windows PE) 'Not: Windows PE AVX durumu tasarrufunu desteklemiyor.

Bu sorun, Microsoft Connect üzerinde bildirilmiştir:

x64 log() işlevini kullanan işletim sistemi bağımsız vpsrlq AVX yönergesi (x64 Vista'da çöküyor için) Visual Studio 2013 RTM: X64 C++ kod oluşturma hata AVX2 yönergeleri için

Neden

Visual C++ 2013 x64 C çalışma zamanı AVX tasarrufu durumuna AVX veya FMA3 yönergeleri çalıştırmak denemeden önce işletim sistemini destekleyip desteklemediğini denetlemediği için bu sorun oluşur.

Çözüm

Visual C++ 2013 kullanılarak oluşturulan tüm etkilenen C++ ikili dosyalar C çalışma zamanı DLL (msvcr120.dll) kullanıyorsanız, güncelleştirilmiş Microsoft Visual C++ 2013 Redistributable – 12.0.40660.0 veya sonraki bir sürümünü yükleyin.Etkilenen C++ ikili dosyalar, statik olarak Visual C++ 2013 C çalışma zamanı bağlantı varsa, Visual Studio 2013 yüklemenizin 3174417 düzeltme yükleme ve yeniden inşa etmek ve etkilenen ikili dosyaları yükleyecek güncelleştirmeniz gerekir.Not: Bu sorun, Visual C++ C çalışma zamanı modülünü (Visual C++ 2012 ve önceki sürümleri) eski sürümlerini etkilemez. Visual C++ 2015 tarafından kullanılan Evrensel CRT ilk sürümünden önce sorun giderilmiştir.

Microsoft İndirme Merkezi

Statik olarak bağlantılı Visual C++ 2013 C Runtime güncelleştirmek için 3174417 düzeltme yalnızca karşıdan yükleme güncelleştirme olarak yayımlanmıştır ve Windows Update aracılığıyla dağıtılmış değildir. Microsoft Download Center Web sitesinde bulunmaktadır:Download Paketini şimdi karşıdan yükle.Dinamik olarak bağlanmış Visual C++ 2013 C çalışma zamanı dll, güncelleştirilmiş güncelleştirmek için yeniden dağıtılabilir kullanılabilir. Daha fazla bilgi için aşağıdaki Microsoft Bilgi Bankası makalesine bakın:

3179560 Visual C++ 2013 ve Visual C++ yeniden dağıtılabilir paketi güncelleştirmesi

Geçici çözüm

Bu soruna geçici bir çözüm için bu sorundan etkileniyorsanız math kitaplığı FMA3 devre dışı bırakın. Sistem GetEnabledXStateFeatures çağırarak ve AVX CRT içinde açıkça _set_FMA3_enable(0)çağırarak devre dışı bırakma yönergeleri AVX destekleyip desteklemediğini sorgulayabilirsiniz.Daha fazla bilgi için MSDN Web sitesinde XState içerikle çalışmakonusuna bakın._Set_FMA3_enable(0) işlevi < math.h > bildirilir ve x64 için yapılandırdığınızda kullanılabilir. (Bu sorun etkiler x64 kitaplıkları.) Bu FMA3 olmayan uygulamaları kullanmaya dönmek math kitaplığı neden olur.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.