Συμπτώματα
Έχετε μια εφαρμογή που έχει ρυθμιστεί ώστε να δημιουργηθούν για μια x64 πλατφόρμα, χρησιμοποιώντας το αρχείο Msvcr90.dll. Η εφαρμογή καλεί τη συνάρτηση strncpy . Όταν εκτελείτε την εφαρμογή, που ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους στο παράθυρο του Visual Studio Debugger έγκαιρος:
Παρουσιάστηκε μια εξαίρεση που δεν αντιμετωπίστηκε win32 στο 'όνομα_εφαρμογής'
Κατά τον έλεγχο της στοίβας κλήσεων, ίσως σας φανεί ενεργοποιήθηκε μια παραβίαση πρόσβασης στο αρχείο Msvcr90.dll και ότι η εφαρμογή σταμάτησε να ανταποκρίνεται στη συνάρτηση strncpy . Αυτό το ζήτημα παρουσιάζεται όταν ισχύουν οι ακόλουθες συνθήκες:
-
Το buffer προέλευσης εκτείνεται έως το τέλος μιας σελίδας που έχει εκχωρηθεί.
-
Το επόμενο byte μετά από αυτήν τη σελίδα δεν ανήκει σε διεργασία που εκτελείται.
-
Το μήκος πρέπει να αντιγραφούν είναι ζυγό πολλαπλάσιο του 8.
-
Το μήκος πρέπει να αντιγραφούν περιλαμβάνει το τελικό byte του buffer προέλευσης.
Αιτία
Αυτό το ζήτημα παρουσιάζεται επειδή η συνάρτηση strncpy επιχειρεί πρόσβαση στο επόμενο byte μετά του buffer προέλευσης. Αυτό το ζήτημα παρουσιάζεται από το νέα βελτιστοποιήσεις ορισμένες λειτουργίες βιβλιοθήκη CRT.
Προτεινόμενη αντιμετώπιση
Πληροφορίες άμεσης επιδιόρθωσης
Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται για τη διόρθωση μόνο του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως το επόμενο Visual Studio 2008 service pack που περιέχει αυτήν την επείγουσα επιδιόρθωση.
Για να επιλύσετε αυτό το ζήτημα αμέσως, επικοινωνήστε με υπηρεσίες υποστήριξης πελατών της Microsoft για να αποκτήσετε την επείγουσα επιδιόρθωση. Για μια πλήρη λίστα αριθμών τηλεφώνου υπηρεσίες υποστήριξης πελατών της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://support.microsoft.com/contactus/?ws=supportΣημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ίσως ακυρωθούν εάν ο επαγγελματίας υποστήριξης της Microsoft κρίνει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.
Προϋποθέσεις
Πρέπει να έχετε το Visual Studio 2008 Service Pack 1 για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση.
Απαίτηση επανεκκίνησης
Δεν χρειάζεται να κάνετε επανεκκίνηση του υπολογιστή μετά την εφαρμογή αυτής της άμεσης επιδιόρθωσης.
Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσης
Αυτή η επείγουσα επιδιόρθωση δεν αντικαθιστά άλλες επείγουσες επιδιορθώσεις.
Πληροφορίες αρχείων
Η αγγλική έκδοση αυτής της άμεσης επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για τα αρχεία αυτά αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, μετατρέπεται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την καρτέλα Zώνη ώρας στο στοιχείο Hμερομηνία και ώρα " στον πίνακα ελέγχου.
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημ/νία |
Ώρα |
Πλατφόρμα |
---|---|---|---|---|---|
Atl90.dll |
9.0.30729.162 |
159,552 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90.dll |
9.0.30729.162 |
5,084,480 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90.dll |
9.0.30729.162 |
3,766,080 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90chs.dll |
9.0.30729.162 |
36,680 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90chs.dll |
9.0.30729.162 |
36,680 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90cht.dll |
9.0.30729.162 |
37,704 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90cht.dll |
9.0.30729.162 |
37,704 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90d.dll |
9.0.30729.162 |
7,419,200 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90d.dll |
9.0.30729.162 |
5,934,912 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90deu.dll |
9.0.30729.162 |
64,328 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90deu.dll |
9.0.30729.162 |
64,328 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90enu.dll |
9.0.30729.162 |
54,600 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90enu.dll |
9.0.30729.162 |
54,600 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90esn.dll |
9.0.30729.162 |
62,792 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90esn.dll |
9.0.30729.162 |
62,792 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90esp.dll |
9.0.30729.162 |
62,792 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90esp.dll |
9.0.30729.162 |
62,792 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90fra.dll |
9.0.30729.162 |
63,816 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90fra.dll |
9.0.30729.162 |
63,816 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90ita.dll |
9.0.30729.162 |
62,280 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90ita.dll |
9.0.30729.162 |
62,280 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90jpn.dll |
9.0.30729.162 |
44,360 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90jpn.dll |
9.0.30729.162 |
44,360 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90kor.dll |
9.0.30729.162 |
43,848 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90kor.dll |
9.0.30729.162 |
43,848 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90u.dll |
9.0.30729.162 |
5,103,424 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90u.dll |
9.0.30729.162 |
3,781,440 |
14-Oct-2008 |
02:32 |
x86 |
Mfc90ud.dll |
9.0.30729.162 |
7,464,264 |
14-Oct-2008 |
01:12 |
x64 |
Mfc90ud.dll |
9.0.30729.162 |
5,980,488 |
14-Oct-2008 |
02:32 |
x86 |
Mfcm90.dll |
9.0.30729.162 |
67,072 |
14-Oct-2008 |
00:50 |
x64 |
Mfcm90.dll |
9.0.30729.162 |
59,904 |
14-Oct-2008 |
00:20 |
x86 |
Mfcm90d.dll |
9.0.30729.162 |
93,184 |
14-Oct-2008 |
00:50 |
x64 |
Mfcm90d.dll |
9.0.30729.162 |
80,896 |
14-Oct-2008 |
00:20 |
x86 |
Mfcm90u.dll |
9.0.30729.162 |
67,072 |
14-Oct-2008 |
00:50 |
x64 |
Mfcm90u.dll |
9.0.30729.162 |
59,904 |
14-Oct-2008 |
00:20 |
x86 |
Mfcm90ud.dll |
9.0.30729.162 |
93,696 |
14-Oct-2008 |
00:50 |
x64 |
Mfcm90ud.dll |
9.0.30729.162 |
80,896 |
14-Oct-2008 |
00:20 |
x86 |
Mfcmifc80u.dll |
9.0.30729.162 |
14,152 |
20-Oct-2008 |
17:19 |
x86 |
Microsoft.visualc.stlclr.dll |
9.0.30729.162 |
49,000 |
20-Oct-2008 |
17:19 |
x86 |
Msvcm90.dll |
9.0.30729.162 |
225,280 |
13-Oct-2008 |
21:59 |
x86 |
Msvcm90.dll |
9.0.30729.162 |
324,096 |
13-Oct-2008 |
22:36 |
IA-64 |
Msvcm90.dll |
9.0.30729.162 |
245,760 |
13-Oct-2008 |
23:40 |
x64 |
Msvcm90d.dll |
9.0.30729.162 |
312,832 |
13-Oct-2008 |
21:59 |
x86 |
Msvcm90d.dll |
9.0.30729.162 |
429,568 |
13-Oct-2008 |
22:37 |
IA-64 |
Msvcm90d.dll |
9.0.30729.162 |
333,312 |
13-Oct-2008 |
23:40 |
x64 |
Msvcp90.dll |
9.0.30729.162 |
1,467,208 |
14-Oct-2008 |
00:56 |
IA-64 |
Msvcp90.dll |
9.0.30729.162 |
854,344 |
14-Oct-2008 |
01:12 |
x64 |
Msvcp90.dll |
9.0.30729.162 |
570,696 |
14-Oct-2008 |
02:32 |
x86 |
Msvcp90d.dll |
9.0.30729.162 |
2,514,760 |
14-Oct-2008 |
00:56 |
IA-64 |
Msvcp90d.dll |
9.0.30729.162 |
1,121,608 |
14-Oct-2008 |
01:12 |
x64 |
Msvcp90d.dll |
9.0.30729.162 |
873,288 |
14-Oct-2008 |
02:32 |
x86 |
Msvcr90.dll |
9.0.30729.162 |
1,504,584 |
14-Oct-2008 |
00:56 |
IA-64 |
Msvcr90.dll |
9.0.30729.162 |
624,456 |
14-Oct-2008 |
01:12 |
x64 |
Msvcr90.dll |
9.0.30729.162 |
653,640 |
14-Oct-2008 |
02:32 |
x86 |
Msvcr90d.dll |
9.0.30729.162 |
3,599,688 |
14-Oct-2008 |
00:56 |
IA-64 |
Msvcr90d.dll |
9.0.30729.162 |
1,349,960 |
14-Oct-2008 |
01:12 |
x64 |
Msvcr90d.dll |
9.0.30729.162 |
1,178,440 |
14-Oct-2008 |
02:32 |
x86 |
Vcomp90.dll |
9.0.30729.162 |
142,664 |
14-Oct-2008 |
00:56 |
IA-64 |
Vcomp90.dll |
9.0.30729.162 |
57,672 |
14-Oct-2008 |
01:12 |
x64 |
Vcomp90.dll |
9.0.30729.162 |
52,040 |
14-Oct-2008 |
02:32 |
x86 |
Vcomp90d.dll |
9.0.30729.162 |
317,256 |
14-Oct-2008 |
00:56 |
IA-64 |
Vcomp90d.dll |
9.0.30729.162 |
105,800 |
14-Oct-2008 |
01:12 |
x64 |
Vcomp90d.dll |
9.0.30729.162 |
89,416 |
14-Oct-2008 |
02:32 |
x86 |
Vcomp90ui.dll |
9.0.30729.162 |
11,592 |
20-Oct-2008 |
17:19 |
x86 |
Vcredist_ia64.exe |
9.0.30729.162 |
4,712,272 |
14-Oct-2008 |
19:32 |
x86 |
Vcredist_x64.exe |
9.0.30729.162 |
5,236,560 |
14-Oct-2008 |
19:36 |
x86 |
Vcredist_x86.exe |
9.0.30729.162 |
4,496,208 |
14-Oct-2008 |
19:28 |
x86 |
Εναλλακτικός τρόπος αντιμετώπισης
Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:
-
Αλλάξτε οποιαδήποτε από τις τέσσερις προϋποθέσεις που περιγράφονται στην ενότητα "Συμπτώματα".
-
Αντικαταστήστε τη συνάρτηση strncpy με άλλες λειτουργίες που έχουν τα παρόμοια λειτουργικότητα, όπως η συνάρτηση memcpyή τη συνάρτηση lstrcpyn .
Σημείωση Αυτές οι λειτουργίες αντιγραφής είναι λίγο διαφορετικοί. Για παράδειγμα, η συνάρτηση memcpy δεν τελειώνει το αντίγραφο συμβολοσειρά όταν συναντήσει ένα μηδενικό byte πριν από το μήκος που υποδεικνύεται.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Περισσότερες πληροφορίες
Για περισσότερες πληροφορίες σχετικά με την ορολογία των ενημερώσεων λογισμικού, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο στη Γνωσιακή Βάση της Microsoft:
824684 περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερωμένων εκδόσεων λογισμικού της Microsoft