Μια εφαρμογή που βασίζεται σε οπτική Win32 2010 C++, ενδέχεται να διακοπούν ή άλλη συνάρτηση αποτυχίες ενδέχεται να προκύψει, εάν το έργο έχει μεταγλωττιστεί με χρήση _fastcall και χρησιμοποιώντας μια επιλογή μεταγλωττιστή βελτιστοποίησης


Συμπτώματα


Εξετάστε το ακόλουθο σενάριο:
  • Μπορείτε να δημιουργήσετε ένα έργο που βασίζεται σε Microsoft Visual C++ 2010 Win32.
  • Μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί _fastcall σε ορισμένες λειτουργίες του έργου. Εναλλακτικά, μπορείτε να ορίσετε την ιδιότητα Κλήση της σύμβασης για το έργο για να _fastcall.
  • Μπορείτε να ενεργοποιήσετε μία από τις επιλογές του μεταγλωττιστή βελτιστοποίησης στο Microsoft Visual Studio 2010. Για παράδειγμα, ενεργοποιείτε το Μεγιστοποίηση της ταχύτητας (/ Ο2) επιλογή μεταγλωττιστή βελτιστοποίησης.

    Σημείωση Όταν είναι ενεργοποιημένη μια επιλογή μεταγλωττιστή βελτιστοποίησης, είναι ενεργοποιημένη η δυνατότητα βελτιστοποίησης επιστροφή τιμής (RVO) στο Visual Studio 2010.
  • Μεταγλωττίστε το έργο και, στη συνέχεια, εκτελέστε την εφαρμογή.
Σε αυτό το σενάριο, η εφαρμογή μπορεί να διακοπεί ή άλλη συνάρτηση αποτυχίες ενδέχεται να παρουσιαστεί.

Για παράδειγμα, η εφαρμογή διακόπτεται εξαιτίας μιας εξαίρεσης παραβίαση πρόσβασης.

Αιτία


Αυτό το ζήτημα παρουσιάζεται επειδή το λανθασμένο κωδικό δημιουργείται όταν η εφαρμογή έχει μεταγλωττιστεί με τη χρήση _fastcall , αν είναι ενεργοποιημένη η δυνατότητα RVO. Το λανθασμένο κωδικό αντικαθίστανται τυχαία μνήμης. Επομένως, ενδέχεται να προκύψουν διάφορα συνάρτηση αποτυχίες.

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


Πληροφορίες άμεσης επιδιόρθωσης

Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται για τη διόρθωση μόνο του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως την επόμενη ενημέρωση λογισμικού που περιέχει αυτήν την άμεση επιδιόρθωση.

Για να επιλύσετε αυτό το ζήτημα αμέσως, επικοινωνήστε με υπηρεσίες υποστήριξης πελατών της Microsoft για να αποκτήσετε την επείγουσα επιδιόρθωση. Για μια πλήρη λίστα αριθμών τηλεφώνου υπηρεσίες υποστήριξης πελατών της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ίσως ακυρωθούν εάν ο επαγγελματίας υποστήριξης της Microsoft κρίνει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.



Προϋποθέσεις

Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε Microsoft Visual Studio 2010 εγκατεστημένο.

Απαίτηση επανεκκίνησης

Δεν χρειάζεται να επανεκκινήσετε τον υπολογιστή μετά την εγκατάσταση της επείγουσας επιδιόρθωσης.

Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσης

Αυτή η επείγουσα επιδιόρθωση δεν αντικαθιστά άλλες επείγουσες επιδιορθώσεις.

Πληροφορίες αρχείου

Η αγγλική έκδοση αυτής της άμεσης επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για τα αρχεία αυτά αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, μετατρέπεται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την καρτέλα Zώνη ώρας στο στοιχείο Hμερομηνία και ώρα " στον πίνακα ελέγχου.


Για όλες τις υποστηριζόμενες εκδόσεις του Visual Studio 2010
Όνομα αρχείουΈκδοση αρχείουΜέγεθος αρχείουΗμ/νίαΏραΠλατφόρμα
C2.dll16.0.30319.3792,508,60825-Oct-201008:42x86
C2.dll16.0.30319.3792,588,99225-Oct-201008:42x86
C2.dll16.0.30319.3792,629,44025-Oct-201008:42x86
C2.dll16.0.30319.3792,975,55225-Oct-201008:42x64
C2.dll16.0.30319.3797,351,61625-Oct-201008:42IA-64

Κατάσταση


Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".