Υπάρχει διαθέσιμη μια επείγουσα επιδιόρθωση που διορθώνει διάφορα ζητήματα στο Microsoft Visual Studio 2010

Ισχύει για: Visual Studio Professional 2010Visual Studio Ultimate 2010Visual Studio Premium 2010

Εισαγωγή

Η επείγουσα επιδιόρθωση που περιγράφεται σε αυτό το άρθρο επιδιορθώνει τα ακόλουθα ζητήματα στο Microsoft Visual Studio 2010.

Πρόβλημα 1

Αντιμετωπίζετε απροσδόκητη συμπεριφορά όταν εκτελείτε μια εφαρμογή που έχει βρόχους στον πηγαίο κώδικα. Αυτό το ζήτημα παρουσιάζεται αν ο κωδικός προέλευσης έχει μεταγλωττιστεί με καθολικό βελτιστοποίησης (/ Og) ενεργοποιημένη.

Πρόβλημα 2

Εξετάστε το ακόλουθο σενάριο:
  • Έχετε ένα έργο Visual C++ που περιλαμβάνει το αρχείο Atlcomcli.h.
  • Μπορείτε να καθορίσετε την επιλογή μεταγλωττιστή /J για τον καθορισμό του_CHAR_UNSIGNEDμακροεντολή στο έργο.
  • Μεταγλωττίστε το έργο.
Σε αυτό το σενάριο, λαμβάνετε ένα από τα ακόλουθα μηνύματα λάθους:
  • Σφάλμα C2338: CVarTypeInfo < χαρακτήρας > δεν είναι δυνατό να καταρτίζονται με /J ή _CHAR_UNSIGNED σημαία ενεργοπ.
  • Σφάλμα C2338: CVarTypeInfo < char * > δεν είναι δυνατό να καταρτίζονται με /J ή _CHAR_UNSIGNED σημαία ενεργοπ.

Πρόβλημα 3

Παρουσιάζεται παραβίαση πρόσβασης όταν εκτελείτε μια εφαρμογή Visual C++ που έχει δημιουργηθεί για μια έκδοση που βασίζεται σε x86 των Windows. Αυτό το ζήτημα παρουσιάζεται όταν η εφαρμογή έχει ένα δέντρο παράσταση που έχει δύο ορίσματα εισόδου τύπο πίνακα.

Αιτία


Αιτία του ζητήματος 1

Αυτό το ζήτημα παρουσιάζεται επειδή εκτελείται μια εσφαλμένη βρόχο βελτιστοποίησης. Αυτό προκαλεί εσφαλμένη δημιουργία κώδικα.

Αιτία του ζητήματος 2

Αυτό το ζήτημα παρουσιάζεται επειδή η στατική διεκδικήσεων στο αρχείο Atlcomcli.h ορίζονται με την επιλογή /J και η μακροεντολή CHAR_UNSIGNED εσφαλμένα.

Αιτία του ζητήματος 3

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

Περισσότερες πληροφορίες


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

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

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

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

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

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

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

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

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

Πληροφορίες αρχείων


Η αγγλική έκδοση αυτής της άμεσης επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για τα αρχεία αυτά αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, μετατρέπεται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την
Ζώνη ώρας
στο το
Ημερομηνία και ώρα
το στοιχείο του πίνακα ελέγχου.
Όνομα αρχείουΈκδοση αρχείουΜέγεθος αρχείουΗμ/νίαΏραΠλατφόρμα
C2.dll16.0.30319.3142,510,14430-May-201020:48x86
C2.dll16.0.30319.3142,588,48030-May-201020:48x86
C2.dll16.0.30319.3142,630,97630-May-201020:48x86
C2.dll16.0.30319.3142,977,60030-May-201020:48x64
C2.dll16.0.30319.3147,351,61630-May-201020:48IA-64

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


Λύση για το ζήτημα 1

Για να επιλύσετε αυτό το ζήτημα, απενεργοποιήστε το καθολικό βελτιστοποίησης. Για περισσότερες πληροφορίες σχετικά με τον τρόπο για να απενεργοποιήσετε τη βελτιστοποίηση καθολικό, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
216181 ΕΠΙΔΙΌΡΘΩΣΗ: εσφαλμένος κωδικός με /Og βελτιστοποίηση

Λύση για το ζήτημα 2

Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε την παρακάτω οδηγία pragma για να συμπεριλάβετε το αρχείο Atlcomcli.h.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT

#define ATLSTATIC_ASSERT(x,y)

#include <atlcomcli.h>

#undef ATLSTATIC_ASSERT

#pragma pop_macro("ATLSTATIC_ASSERT")