Ζητήματα λειτουργίας CreateWindowEx για εφαρμογές 32-bit στα Windows 10

Σε ορισμένες περιπτώσεις, μετά από αναβάθμιση σε νεότερη έκδοση, τα Windows 10 προκαλούν σφάλματα ή άλλα ζητήματα όταν καλούν τη συνάρτηση CreateWindowEx από το msctf.dll όταν δημιουργούνται παράθυρα σε ορισμένες εφαρμογές 32 bit. Σε αυτήν την ανάρτηση, θα καταλάβουμε τι είναι η  συνάρτηση CreateWindowEx – εξερευνήστε τις πιθανές αιτίες αυτού του σφάλματος συνάρτησης και στη συνέχεια παρέχετε τη συνιστώμενη λύση για τον μετριασμό του προβλήματος.

Κατανόηση της συνάρτησης CreateWindowEx

Λειτουργία CreateWindowEx

Οι εφαρμογές των Windows(Windows) , συμπεριλαμβανομένων των εφαρμογών .NET που χρησιμοποιούν Windows Forms ή Windows Presentation Foundation ( WPF ), δημιουργούν τα παράθυρά τους καλώντας τις συναρτήσεις CreateWindowExA ή CreateWindowExW .

Και οι δύο συναρτήσεις καλούν εσωτερικά μια κοινή συνάρτηση USER32 που θα εκτελέσει κάποια επικύρωση παραμέτρων, όπως τα στυλ παραθύρου και οι λαβές που καθορίζονται στην κλήση, χειρίζεται τη δημιουργία ενός θυγατρικού παραθύρου MDI εάν έχει καθοριστεί το εκτεταμένο στυλ παραθύρου (MDI)WS_EX_MDICHILD και επεξεργάζεται το τρέχον περιβάλλον ενεργοποίησης για την κλήση Νήμα. Εάν όλα είναι καλά στην πλευρά USER32(USER32-side) της κλήσης CreateWindowEx , τότε καλεί την υλοποίηση του CreateWindowEx σε λειτουργία πυρήνα ( (CreateWindowEx)WIN32K ) .

Το CreateWindowEx(CreateWindowEx) θα εκτελέσει τις ακόλουθες εργασίες όταν προσπαθεί να δημιουργήσει ένα νέο αντικείμενο παραθύρου:

  • Προσδιορίστε εάν η δημιουργία μιας λαβής για το αντικείμενο του νέου παραθύρου θα υπερβεί το  όριο του ορίου χειρισμού χρήστη για τη διαδικασία κλήσης.(User)
  • Εκχωρεί μνήμη για το αντικείμενο νέου παραθύρου από το σωρό της επιφάνειας εργασίας.
  • Αρχικοποιεί τη μνήμη για το νέο αντικείμενο παραθύρου.
  • Δημιουργεί μια λαβή για το αντικείμενο νέου παραθύρου στον πίνακα χειρισμού χρήστη(User) .

Αιτίες αποτυχιών του CreateWindowEx

Ορισμένες συνθήκες που μπορούν να προκαλέσουν το ζήτημα της συνάρτησης CreateWindowEx απαριθμούνται ως εξής:

  • Η καθορισμένη κλάση παραθύρου δεν υπάρχει.
  • Χρήση μη έγκυρων στυλ παραθύρων ή εκτεταμένων στυλ παραθύρων.
  • Χρήση μη έγκυρων λαβών χρήστη(User) , όπως λαβές παραθύρων και λαβών μενού.
  • Προσπάθεια δημιουργίας θυγατρικού παραθύρου χωρίς καθορισμό γονικού παραθύρου.
  • Προσπάθεια δημιουργίας θυγατρικού παραθύρου ή ιδιόκτητου παραθύρου και ο καθορισμένος γονέας/κάτοχος ανήκει σε διαφορετική επιφάνεια εργασίας από το νήμα κλήσης.
  • Η δημιουργία θυγατρικού ή ιδιόκτητου παραθύρου θα υπερβεί το όριο του ένθετου παραθύρου.
  • Η δημιουργία ενός νέου αντικειμένου παραθύρου θα υπερβεί το όριο χειρισμού για τη διαδικασία κλήσης.
  • Δεν υπάρχει αρκετός διαθέσιμος σωρός στο σωρό της επιφάνειας εργασίας για την εκχώρηση μνήμης για το αντικείμενο του νέου παραθύρου.
  • Δεν υπάρχουν διαθέσιμες καταχωρήσεις στον πίνακα χειρισμού χρήστη(User) .

Διορθώστε ζητήματα λειτουργίας CreateWindowEx(Fix CreateWindowEx) για εφαρμογές 32-bit στα Windows 10

Η Microsoft(Microsoft) έχει παράσχει μια λύση για τα ζητήματα της λειτουργίας CreateWindowEx .

Για να επιλύσετε αυτό το ζήτημα, θα πρέπει να επαναφέρετε την εγκατάσταση των Windows 10 στην προηγούμενη έκδοση.

Η επιλογή επαναφοράς στα Windows 10 είναι διαθέσιμη για 10 ημέρες(10 days) (στις περισσότερες περιπτώσεις) αφού αναβαθμίσετε την εγκατάσταση των Windows 10.

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

Εάν η επιλογή επαναφοράς δεν είναι διαθέσιμη – δημιουργήστε αντίγραφα ασφαλείας των προσωπικών σας αρχείων , τότε μπορείτε να επικοινωνήσετε με την υποστήριξη IT ή το γραφείο υποστήριξης ή την Υποστήριξη της Microsoft(Microsoft Support) για βοήθεια σχετικά με την επαναφορά της συσκευής σας στην προηγούμενη έκδοση του Windows 10(Window 10) .

That’s it!

ΥΓ(PS) : Η Microsoft εργάζεται σε μια επίλυση και θα παράσχει μια ενημέρωση στην επερχόμενη έκδοση των Windows 10 .



About the author

Είμαι έμπειρος ειδικός στα windows 10 και 11/10, με εμπειρία τόσο σε προγράμματα περιήγησης όσο και σε εφαρμογές smartphone. Είμαι μηχανικός λογισμικού για περισσότερα από 15 χρόνια και έχω συνεργαστεί με μια σειρά από μεγάλες εταιρείες, όπως η Microsoft, η Google, η Apple, η Ubisoft και άλλες. Έχω διδάξει επίσης ανάπτυξη windows 10/11 σε επίπεδο κολεγίου.



Related posts