Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Μπορείτε να δημιουργήσετε μια εφαρμογή στο Microsoft Visual C++ 2010.
-
Μπορείτε να χρησιμοποιήσετε τη συνάρτηση fopen() στην εφαρμογή για να ανοίξετε ένα αρχείο και η συνάρτηση χρησιμοποιεί το r +, ή μια + λειτουργία πρόσβασης.
-
Μπορείτε να εκτελέσετε την εφαρμογή και το applicationtries για να ανοίξετε ένα αρχείο που είναι ίσο ή μεγαλύτερο από 4 gigabyte (GB).
Σε αυτό το σενάριο, το αρχείο δεν ανοίγει ή επέστρεψε το ακόλουθο σφάλμα:
EINVAL (μη έγκυρο όρισμα)
Αιτία
Αυτό το ζήτημα παρουσιάζεται εξαιτίας του τρόπου που αναζητά η συνάρτηση fopen() έως τα άκρα των αρχείων μετά ανοίγει τα αρχεία για προσάρτηση. Η συνάρτηση fopen() χρησιμοποιεί εσωτερικά τη συνάρτηση _lseek() για να εκτελέσετε αυτήν την ενέργεια. Ωστόσο, η συνάρτηση _lseek() δεν μπορεί να χειριστεί αρχεία που είναι ίση ή μεγαλύτερη από 4 GB.
Προτεινόμενη αντιμετώπιση
Αυτή η επείγουσα επιδιόρθωση αλλάζει τη συμπεριφορά του fopen() οικογένεια των συναρτήσεων. Μετά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης, η συνάρτηση fopen() χρησιμοποιεί εσωτερικά μια συνάρτηση που να επιδιώκουν πέρα από το όριο των 4 GB χωρίς να επιστρέψετε ένα σφάλμα. Συγκεκριμένα, η συνάρτηση fopen() χρησιμοποιεί τη συνάρτηση _lseeki64() αντί της συνάρτησης _lseek() .
Πληροφορίες άμεσης επιδιόρθωσης
Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται για τη διόρθωση μόνο του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα.
Για να επιλύσετε αυτό το ζήτημα, επικοινωνήστε με υπηρεσίες υποστήριξης πελατών της Microsoft για να αποκτήσετε την επείγουσα επιδιόρθωση. Για μια πλήρη λίστα αριθμών τηλεφώνου υπηρεσίες υποστήριξης πελατών της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://support.microsoft.com/contactus/?ws=supportΣημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ίσως ακυρωθούν εάν ο επαγγελματίας υποστήριξης της Microsoft κρίνει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.
Προϋποθέσεις
Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε Microsoft Visual Studio 2010 Service Pack 1 (SP1) εγκατεστημένο.
Απαίτηση επανεκκίνησης
Ίσως χρειαστεί να κάνετε επανεκκίνηση του υπολογιστή μετά την εγκατάσταση αυτής της επείγουσας επιδιόρθωσης, εάν χρησιμοποιούνται τα αρχεία που επηρεάζονται.
Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσης
Αυτή η άμεση επιδιόρθωση δεν αντικαθιστά μια άμεση επιδιόρθωση που κυκλοφόρησε στο παρελθόν.
Πληροφορίες αρχείων
Η καθολική έκδοση έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για τα αρχεία αυτά αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, μετατρέπεται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την καρτέλα Zώνη ώρας στο στοιχείο Hμερομηνία και ώρα " στον πίνακα ελέγχου.
Για όλες τις υποστηριζόμενες εκδόσεις του Microsoft Visual Studio 2010 SP1
Όνομα αρχείου |
Έκδοση αρχείου |
Μέγεθος αρχείου |
Ημ/νία |
Ώρα |
Πλατφόρμα |
---|---|---|---|---|---|
Mfcm100.dll |
10.0.40219.362 |
82,696 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100d.dll |
10.0.40219.362 |
104,720 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100u.dll |
10.0.40219.362 |
82,704 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100ud.dll |
10.0.40219.362 |
106,256 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100.dll |
10.0.40219.362 |
93,960 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100d.dll |
10.0.40219.362 |
120,592 |
15-Nov-2011 |
23:56 |
x64 |
Mfcm100u.dll |
10.0.40219.362 |
93,968 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100ud.dll |
10.0.40219.362 |
122,128 |
15-Nov-2011 |
23:56 |
x64 |
Mfcmifc80.dll |
10.0.40219.362 |
14,096 |
16-Nov-2011 |
21:26 |
x86 |
Περισσότερες πληροφορίες
Για περισσότερες πληροφορίες σχετικά με κάποιο άλλο πακέτο επειγουσών επιδιορθώσεων που ισχύει για το πακέτο αναδιανομής Microsoft Visual C++ 2010 Service Pack 1 (SP1), κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
2606060 ΕΠΙΔΙΌΡΘΩΣΗ: δεν μπορείτε να ανοίξετε ένα αρχείο το οποίο έχει τουλάχιστον 4 GB για να προσαρτήσετε ή να κάνετε εγγραφή δεδομένων χρησιμοποιώντας μια εφαρμογή που χρησιμοποιεί η Visual C++ 2010 με δυνατότητα αναδιανομής
Για περισσότερες πληροφορίες σχετικά με τις συναρτήσεις fopen() και _wfopen() , επισκεφθείτε την ακόλουθη τοποθεσία MSDN στο Web:
Γενικές πληροφορίες σχετικά με τις συναρτήσεις fopen() και _wfopen()
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".