Group Blog
 
All Blogs
 
Registry Key 32/64 Bit ต่างกันไฉน

วันนี้เจอ bug ของโปรแกรมที่เขียนไปแล้วอย่างแปลกประหลาด คือเนื่องจากเราขาย Solution ดังนั้น Software ที่ทำก็จะไม่ได้มีแค่ Module เดียว ทีนี้มันมีปัญหาตรงที่ว่าโปรแกรมที่ไว้ Config ค่าต่างๆ ของระบบเราทั้งหมด ดันไม่สามารถส่งค่าที่ Config เสร็จไปให้โปรแกรมตัวอื่นๆ ในระบบได้ ไม่ว่าจะพยายามตั้งค่าแค่ไหน ซึ่งน่าแปลกตรงที่เราเขียนไปนานมากแล้วทำไมถึงพึ่งมาเป็น

หลังจากมานั่งไล่แกะดูอยู่นาน ในที่สุดก็พบสาเหตุแล้ว มันเกิดจากระบบป้องกัน Registry ของ Windows นั่นเอง

ถ้าเราทำงานบนเครื่องที่เป็น 64-bit เวลาที่โปรแกรมที่เป็น 32 bit พยายามจะเขียน Registry มันจะล็อกส่วนไว้ไม่ให้ไปยุ่งกับ Registry ของโปรแกรม 64 Bit คือโปรแกรม 32-bit จะเขียน Registry ได้เฉพาะภายใต้ HKEY_LOCAL_MACHINESOFTWAREWow6432Node เท่านั้นที่ผ่านมาระบบของเราคือจะเขียน Config ลง Registry แต่เผอิญโมดูลที่ใช้เขียน Config ดันถูก Compile เป็น 32 bit ส่วน Module ที่ใช้อ่าน Config ถูกคอมไพล์เป็น Any Cpu ดังนั้น Registry ที่โมดูลเขียน Config พยายามแก้ จึงไม่ใช่จุดที่โมดูลทำงานจริงอ่าน

บทเรียนวันนี้คือ เวลาทำ Software Solution ขนาดใหญ่ที่ต้องมีหลายโปรแกรมประกอบเข้าด้วยกัน (ถ้ายกแบบที่่รู้จักกันทั่วก็เช่น Microsoft Office) การจะมี Config รวมต้องระวังเรื่อง 32,64 bit ให้ดี ควรจะเทสบนเครื่อง 64,32 พร้อมๆ กันก่อนส่งให้ลูกค้านะคร้าบ 




Create Date : 30 สิงหาคม 2555
Last Update : 30 สิงหาคม 2555 21:28:49 น. 0 comments
Counter : 398 Pageviews.

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 

Mariel
Location :


[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add Mariel's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.