Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows

ปัญหาฟังก์ชัน CreateWindowEx สำหรับแอป 32 บิตใน Windows 10

ในบางกรณี หลังจากอัปเกรดเป็นเวอร์ชันที่ใหม่กว่า Windows 10 จะทำให้เกิดปัญหาหรือปัญหาอื่นๆ เมื่อเรียกใช้ CreateWindowEx ฟังก์ชันจาก msctf.dll เมื่อ windows ถูกสร้างขึ้นในแอพพลิเคชั่น 32 บิตบางตัว ในบทความนี้ เราจะมาทำความเข้าใจว่า  CreateWindowEx ฟังก์ชันคือ – สำรวจสาเหตุที่เป็นไปได้ของข้อผิดพลาดของฟังก์ชันนี้ จากนั้นให้วิธีแก้ไขปัญหาที่แนะนำเพื่อลดปัญหา

ทำความเข้าใจเกี่ยวกับฟังก์ชัน CreateWindowEx

ปัญหาฟังก์ชัน CreateWindowEx สำหรับแอป 32 บิตใน Windows 10

แอปพลิเคชัน Windows รวมถึงแอปพลิเคชัน .NET ที่ใช้ Windows Forms หรือ Windows Presentation Foundation (WPF) สร้างหน้าต่างโดยการเรียก CreateWindowExA หรือ CreateWindowExW ฟังก์ชัน

ทั้งสองฟังก์ชันภายในเรียก USER32 . ทั่วไป ฟังก์ชันที่จะทำการตรวจสอบพารามิเตอร์บางอย่าง เช่น รูปแบบหน้าต่างและหมายเลขอ้างอิงที่ระบุในการเรียก จัดการการสร้างหน้าต่างลูก MDI หาก WS_EX_MDICHILD มีการระบุลักษณะหน้าต่างแบบขยายและประมวลผลบริบทการเปิดใช้งานปัจจุบันสำหรับเธรดที่เรียก ถ้าทุกอย่างเรียบร้อยดีใน ​​USER32-side ของการเรียก CreateWindowEx จากนั้นจะเรียกเข้าสู่การใช้งานโหมดเคอร์เนล (WIN32K) ของ CreateWindowEx

CreateWindowEx จะทำงานต่อไปนี้เมื่อพยายามสร้างวัตถุหน้าต่างใหม่:

  • กำหนดว่าการสร้างแฮนเดิลสำหรับออบเจ็กต์หน้าต่างใหม่จะเกินขีดจำกัดโควตาจัดการผู้ใช้สำหรับกระบวนการโทรหรือไม่
  • จัดสรรหน่วยความจำสำหรับวัตถุหน้าต่างใหม่จากฮีปของเดสก์ท็อป
  • เริ่มต้นหน่วยความจำสำหรับวัตถุหน้าต่างใหม่
  • สร้างหมายเลขอ้างอิงสำหรับวัตถุหน้าต่างใหม่ในตารางหมายเลขอ้างอิงของผู้ใช้

สาเหตุของความล้มเหลวของ CreateWindowEx

เงื่อนไขบางประการที่สามารถทำให้เกิดปัญหาฟังก์ชัน CreateWindowEx ถูกระบุดังนี้:

  • ไม่มีคลาสหน้าต่างที่ระบุ
  • การใช้รูปแบบหน้าต่างที่ไม่ถูกต้องหรือรูปแบบหน้าต่างแบบขยาย
  • การใช้หมายเลขอ้างอิงผู้ใช้ที่ไม่ถูกต้อง เช่น หมายเลขอ้างอิงหน้าต่างและหมายเลขอ้างอิงเมนู
  • พยายามสร้างหน้าต่างย่อยโดยไม่ระบุหน้าต่างหลัก
  • ความพยายามที่จะสร้างหน้าต่างย่อยหรือหน้าต่างที่เป็นเจ้าของ และพาเรนต์/เจ้าของที่ระบุเป็นของเดสก์ท็อปที่แตกต่างจากเธรดที่เรียก
  • การสร้างลูกหรือหน้าต่างที่เป็นเจ้าของจะเกินขีดจำกัดหน้าต่างที่ซ้อนกัน
  • การสร้างวัตถุหน้าต่างใหม่จะเกินโควตาหมายเลขอ้างอิงสำหรับกระบวนการโทร
  • มีฮีปไม่เพียงพอในฮีปของเดสก์ท็อปในการจัดสรรหน่วยความจำสำหรับออบเจ็กต์หน้าต่างใหม่
  • ไม่มีรายการที่พร้อมใช้งานในตารางจัดการผู้ใช้

แก้ไขปัญหาฟังก์ชัน CreateWindowEx สำหรับแอป 32 บิตใน Windows 10

Microsoft ได้จัดเตรียมวิธีแก้ปัญหาเกี่ยวกับฟังก์ชัน CreateWindowEx

ในการแก้ไขปัญหานี้ คุณจะต้องย้อนกลับการติดตั้ง Windows 10 ไปเป็นเวอร์ชันก่อนหน้า

ตัวเลือกย้อนกลับใน Windows 10 ใช้งานได้ 10 วัน (โดยส่วนใหญ่) หลังจากคุณอัปเกรดการติดตั้ง Windows 10 แล้ว

การดำเนินการนี้จะเก็บไฟล์ส่วนบุคคลของคุณ แต่จะลบแอปพลิเคชันและไดรเวอร์ที่ติดตั้งหลังจากการอัปเกรด และยังย้อนกลับการเปลี่ยนแปลงใดๆ ที่คุณทำกับการตั้งค่า

หากไม่มีตัวเลือกย้อนกลับ – สำรองไฟล์ส่วนบุคคลของคุณ คุณสามารถติดต่อฝ่ายสนับสนุนด้านไอทีหรือฝ่ายช่วยเหลือหรือฝ่ายสนับสนุนของ Microsoft เพื่อขอความช่วยเหลือในการกู้คืนอุปกรณ์ของคุณเป็น Window 10 เวอร์ชันก่อนหน้า

แค่นั้นแหละ!

ป.ล. :Microsoft กำลังทำงานในการแก้ปัญหาและจะจัดเตรียมการอัปเดตใน Windows 10 ที่ออกวางจำหน่ายเร็วๆ นี้

ปัญหาฟังก์ชัน CreateWindowEx สำหรับแอป 32 บิตใน Windows 10