Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Έχετε ένα έργο Visual C++ 2010. Ο κωδικός προέλευσης του έργου έχει μια δομή ή την κλάση που υπερβαίνει τα 64 byte.
-
Μπορείτε να δημιουργήσετε το έργο για μια πλατφόρμα που βασίζεται σε x64 και χρησιμοποιήστε την επιλογή μεταγλωττιστή /O2 .
-
Εκτέλεση της εφαρμογής.
Σε αυτό το σενάριο, παρουσιάζεται μια παραβίαση πρόσβασης και διακόπτεται η λειτουργία της εφαρμογής.
Αιτία
Αυτό το ζήτημα παρουσιάζεται επειδή το πρόγραμμα βασίζεται σε x64 μεταγλώττισης του Visual Studio 2010 βελτιστοποιεί τον κωδικό προσαρμόζοντας τη στοίχιση της εκχώρησης δεδομένων από 64 byte με 16 byte. Επομένως, ένα θέμα μνήμης παρουσιάζεται για τα αντικείμενα που υπερβαίνει τα 64 byte.
Επίλυση
Πληροφορίες άμεσης επιδιόρθωσης
Μια υποστηριζόμενη άμεση επιδιόρθωση είναι διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η άμεση επιδιόρθωση προορίζεται για τη διόρθωση μόνο του προβλήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε αυτήν την άμεση επιδιόρθωση μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο πρόβλημα. Αυτή η άμεση επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως την επόμενη ενημέρωση λογισμικού που περιέχει αυτήν την άμεση επιδιόρθωση. Για να κάνετε λήψη αυτής της επείγουσας επιδιόρθωσης από τη συλλογή κωδίκων MSDN, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://code.msdn.microsoft.com/KB2280741Σημείωση Η συλλογή κωδίκων MSDN εμφανίζει τις γλώσσες για τις οποίες η επείγουσα επιδιόρθωση είναι διαθέσιμη. Εάν δεν βλέπετε τη γλώσσα σας στη λίστα, είναι επειδή η σελίδα πόρου συλλογής κώδικα δεν είναι διαθέσιμη για αυτήν τη γλώσσα. Σημείωση Εάν προκύψουν πρόσθετα ζητήματα ή απαιτείται αντιμετώπιση προβλημάτων, ίσως χρειαστεί να δημιουργήσετε ξεχωριστή αίτηση εξυπηρέτησης. Για πρόσθετες ερωτήσεις υποστήριξης και θέματα που δεν αφορούν τη συγκεκριμένη άμεση επιδιόρθωση, ισχύουν οι συνηθισμένες χρεώσεις υποστήριξης. Για την πλήρη λίστα αριθμών τηλεφώνου υποστήριξης και εξυπηρέτησης πελατών της Microsoft ή για να δημιουργήσετε ξεχωριστή αίτηση εξυπηρέτησης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://support.microsoft.com/contactus/?ws=supportΜπορείτε επίσης να κάνετε λήψη αυτής της επείγουσας επιδιόρθωσης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
Προϋποθέσεις
Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε εγκατεστημένο Visual Studio 2010.
Απαίτηση επανεκκίνησης
Δεν χρειάζεται να επανεκκινήσετε τον υπολογιστή, αφού εφαρμόσετε την επείγουσα επιδιόρθωση.
Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσης
Αυτή η επείγουσα επιδιόρθωση δεν αντικαθιστά άλλες επείγουσες επιδιορθώσεις.
Πληροφορίες αρχείου
Η αγγλική έκδοση αυτής της άμεσης επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για τα αρχεία αυτά αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, μετατρέπεται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την καρτέλα ζώνη ώρας στο στοιχείο " ημερομηνία και ώρα " στον πίνακα ελέγχου.
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημερομηνία |
Ώρα |
Πλατφόρμα |
---|---|---|---|---|---|
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 |
Λύση
Για να επιλύσετε αυτό το ζήτημα, μην χρησιμοποιείτε την επιλογή μεταγλωττιστή /O2 κατά τη δημιουργία του έργου.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".