Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Όταν δημιουργείτε ένα πρόγραμμα χρησιμοποιώντας το Microsoft Visual C++ 2013, το πρόγραμμα διακόπτεται και λαμβάνετε μια εξαίρεση "Εσφαλμένη οδηγία". Αυτό συμβαίνει επειδή ορισμένες λειτουργίες βιβλιοθήκη μαθηματικών κινητής υποδιαστολής στο περιβάλλον χρόνου εκτέλεσης Visual C++ 2013 x64 C (CRT) δεν ελέγχει σωστά αν ορισμένες οδηγίες AVX και FMA3 είναι διαθέσιμα πριν τις συναρτήσεις προσπαθήσετε να τα χρησιμοποιήσετε. Εάν οι οδηγίες δεν είναι διαθέσιμη για χρήση, κλήσεις σε αυτές τις λειτουργίες προκαλέσει μια εξαίρεση εσφαλμένης οδηγίας (0xc000001d). Οι συναρτήσεις που επηρεάζονται περιλαμβάνουν καταγραφής, log10, και pow και άλλα.

Αυτό το ζήτημα είναι πιο πιθανό να προκύψει στα ακόλουθα σενάρια:

  • Σε μια παλαιότερη έκδοση του λειτουργικού συστήματος των Windows που δεν υποστηρίζει AVX αναφέρει Αποθήκευση (για παράδειγμα, τα Windows Vista) Εάν χρησιμοποιείται σε έναν υπολογιστή που υποστηρίζει το σύνολο εντολών AVX

  • Εάν AVX κατάσταση αποθήκευσης έχει απενεργοποιηθεί ρητά στον παραμέτρων εκκίνησης του λειτουργικού συστήματος

  • Στο περιβάλλον προεγκατάστασης των Windows (Windows PE)

    Σημείωση Το Windows PE δεν υποστηρίζει την αποθήκευση κατάσταση AVX.


Αυτό το ζήτημα έχει αναφερθεί στο Microsoft Connect:

x64 η συνάρτηση log() χρησιμοποιεί vpsrlq AVX οδηγία, ανεξάρτητα από το λειτουργικό σύστημα (έτσι αυτή κλείσει ξαφνικά σε Vista x64)

Visual Studio 2013 RTM: C++ x64 κωδικός σφάλματος γενιάς για οδηγίες AVX2

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή το στοιχείο χρόνου εκτέλεσης Visual C++ 2013 x64 C δεν ελέγχει αν το λειτουργικό σύστημα υποστηρίζει AVX κατάσταση αποθήκευση πριν να προσπαθήσει να εκτελέσει οδηγίες AVX ή FMA3.

Προτεινόμενη αντιμετώπιση

Εάν όλα που επηρεάζονται C++ δυαδικά αρχεία που έχουν δημιουργηθεί χρησιμοποιώντας τη Visual C++ 2013 χρησιμοποιεί το αρχείο DLL χρόνου εκτέλεσης C (msvcr120.dll), εγκαταστήστε το ενημερωμένο Microsoft Visual C++ 2013 με δυνατότητα αναδιανομής – 12.0.40660.0 ή νεότερη έκδοση.

Εάν σας που έχει επηρεαστεί δυαδικά αρχεία C++ σύνδεση στατικά το 2013 C χρόνου εκτέλεσης Visual C++, πρέπει να ενημερώσετε την εγκατάσταση του Visual Studio 2013 από την εγκατάσταση της επείγουσας επιδιόρθωσης 3174417 και η αναδημιουργία και η επανάληψη ανάπτυξης τα δυαδικά αρχεία που επηρεάζονται.









Σημείωση Αυτό το ζήτημα δεν επηρεάζει τις παλαιότερες εκδόσεις του Visual C++ C χρόνου εκτέλεσης (Visual C++ 2012 και προηγούμενες εκδόσεις). Το πρόβλημα διορθώθηκε πριν από την αρχική έκδοση του CRT γενικής χρήσης που χρησιμοποιείται από το Visual C++ 2015.

Κέντρο λήψης αρχείων της Microsoft

Για να ενημερώσετε το συνδεδεμένο στατικά 2013 C χρόνου εκτέλεσης Visual C++, η 3174417 επείγουσα επιδιόρθωση κυκλοφόρησε ως ενημέρωση μόνο λήψη αρχείων και δεν διανέμονται μέσω του Windows Update. Διατίθεται στην τοποθεσία Web Κέντρο λήψης της Microsoft:

Download Άμεση λήψη του πακέτου.

Για να ενημερώσετε τα δυναμικά συνδεδεμένα Visual C++ 2013 C χρόνου εκτέλεσης dll, ένα ενημερωμένο με δυνατότητα αναδιανομής είναι διαθέσιμη. Για περισσότερες πληροφορίες, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:

3179560 ενημερωμένη έκδοση για το Visual C++ 2013 και πακέτο αναδιανομής Visual C++

Εναλλακτικός τρόπος αντιμετώπισης

Για να επιλύσετε αυτό το ζήτημα, απενεργοποιήστε FMA3 στη βιβλιοθήκη μαθηματικών αν επηρεάζεστε από αυτό το ζήτημα. Μπορείτε να υποβάλετε ερώτημα αν το σύστημα υποστηρίζει AVX οδηγίες από κλήση GetEnabledXStateFeatures και απενεργοποίηση AVX με το CRT ρητά από την κλήση της _set_FMA3_enable(0).

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα εργασία με περιβάλλον XStateστην τοποθεσία MSDN στο Web.

Η συνάρτηση _set_FMA3_enable(0) έχει δηλωθεί στο < math.h > και είναι διαθέσιμο μόνο όταν δημιουργείτε για x64. (Αυτό το ζήτημα επηρεάζει μόνο την x64 βιβλιοθήκες.) Αυτό έχει ως αποτέλεσμα η βιβλιοθήκη μαθηματικών για να επιστρέψει στη χρήση υλοποιήσεις του μη FMA3.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×