เครื่องมือสำคัญในการพัฒนาโปรแกรมบน windows(win32 API)

เครื่องมือสำคัญในการพัฒนาโปรแกรมบน windows(win32 API)

สวัสดีครับ

ในที่นี้ ​สมมติว่า​​ทุกคน​​มี​ความ​รู้พื้นฐานภาษา​C/C++​ได้​ระดับหนึ่ง​​ที่​สามารถ​จะ​สร้างโปรแกรม​เล็กๆ​น้อยๆ​​ใช้​งานเอง​ได้​แล้ว​​ใน​ระบบดอส​​เมื่อเรา​จะ​มาพัฒนางานของเราต่อ​​ใน​ระบบ​windows จะ​ต้อง​ทำ​อย่างไร​กัน​บ้าง

​เครื่องมือพัฒนา​โปรแกรม​กับ​ระบบ windows ​

เอาล่ะ​​สรุปเลยก็​แล้ว​กัน​นะ​​เฉพาะระบบ ​windows ​จะ​มี​เครื่องมือจำ​เป็น​หลักๆ​​ที่​ใช้​ใน​การพัฒนา​โปรแกรม​​อยู่​ 3-4​ ตัว​​โดย​แบ่ง​ได้​ดังนี้

  1. แบบ​ Hardcore ​หรือ​​รุ่นโบราณ  สิ่งที่​ต้อง​ใช้​มีดังนี้

1.1 Text Editor หรือ​​โปรแกรมสำ​หรับพิมพ์ข้อ​ความ​อย่างเดียว​​ไม่มีลูกเล่น​ใดๆ​ทั้ง​สิ้น​​เอา​ไว้​สำ​หรับเขียนรหัสต้น​ฉบับ​(source code)

1.2 Compiler ตัวแปลภาษา​​ต้อง​เป็น​ภาษา ​C/C++ ​เท่า​นั้น ​​สมัยก่อน​(ในสมัยนี้​​ก็​ยัง​มี​อยู่)​ จะ​ทำ​งานผ่านบรรทัดคำ​สั่ง​(command line) ​สามารถ​แปล​ source code ​ที่​เรา​เขียน​ใน​ข้อ ​1.1​ให้​มา​เป็น​ภาษา​เครื่อง​ได้​​สามารถ​ใส่​ลูกเล่นต่างๆ​ได้​ผ่านสิ่งที่​เรียกว่า​option Switch ​จะ​ตาม​ด้วย​​เครื่องหมาย​‘ / ’ ​หรือ​‘ – ‘ ​แล้ว​แต่ระบบที่รองรับ​Compiler ​สำ​หรับ​windows ​น่า​จะ​เป็น​‘/ ’ ​จาก​นั้น​​ก็​ใส่​ตัวอักษรย่อ​​ภาษาอังกฤษ​​ที่​แทนคำ​สั่งพิ​เศษ​​เพื่อ​ให้​compiler ​ของเราทำ​งาน​​ตามที่กำ​หนดเอา​ไว้

1.3 Resource compiler ตัว นี้​​เอา​ไว้​สำ​หรับ ​compile resource ​ให้​มัน​​พร้อมที่​จะ​รวม​เข้า​กับ​โปรแกรมของเรา​​ โดย​ที่​เรา​จะ​ต้อง​สร้างไฟล์​​ขึ้นมา ​1​ ไฟล์​เป็น​แบบ ​text file คล้ายกับการเขียน ​source code ​ที่กล่าวมาข้างต้น ​​แต่​ไฟล์นี้​​จะถูกเขียนตามวิธีการที่​ windows ​กำ​หนด​ไว้​​สำ​หรับการสร้าง​ Resource ​จาก​นั้น​​ค่อยเรียก​ resource compiler ​ให้​ทำ​การ​ compile ​ใน​ลักษณะ​เดียว​กัน​กับ​การ​ใช้ ​compiler

1.4 Linker จริงๆ​แล้ว ​compiler ​ยัง​ไม่​ได้​ทำ​ให้​source code ​ของเรากลาย​เป็น​ภาษา​เครื่องไปทันที​​แต่ก็​เกือบ​แล้ว​​เพราะ​ว่า​​เรา​จะ​ต้อง​​สั่ง​ให้ ​source code ​ของเราที่​ compiler ​ทำ​การ​ compile ​เสร็จ​แล้ว​​ไปรวม​เข้า​กับส่วนประกอบแบบภาพที่ถูก compile มาแล้ว ผ่าน resource compiler และประกอบเข้ากับ​วิธีการเรียก​ใช้​คำ​สั่งต่างๆ​ใน​ library ​เฉพาะของภาษา​​อีกทีหนึ่ง​​ก่อน​ ต่างจากระบบ​ dos ​จะ​จบแค่ขั้นตอนการ compile ให้เสร็จแล้ว link ไปเป็นภาษาเครื่องเลย ​แต่สำ​หรับ​ windows ​อย่างที่บอกไป​แล้วว่า ​​ส่วน​ประกอบของมัน​​จะ​แสดง​ใน​ลักษณะรูปภาพ​​ทำ​ให้​ Linker ​ต้อง​เรียก ​resource ​ที่ผ่านการ ​compile ​มา​แล้ว​เข้า​มา​​รวมในโปรแกรม​ด้วย​​ก่อนที่​จะ​ทำการ link ​อีกที​เพื่อ​ให้​ได้​ตัว​​โปรแกรมที่​ต้อง​การ

1.5 Make File เป็น ​text file ​อันหนึ่ง​​ที่​เขียนวิธีการเรียก​ใช้ ​compiler linker ​และ ​resource compiler ​ให้​ทำ​งานต่อ​เนื่อง​กัน​ไปจนสำ​เร็จ​​ออกมา​เป็น​ตัวโปรแกรมที่​ต้อง​การเหมาะกับโปรแกรมที่มีส่วนประกอบจำนวนมาก และเริ่มมีความซับซ้อน

สำหรับวิธีการพัฒนาโปรแกรมบน windows แบบแรกนี้ ดูๆไปก็ค่อนข้างจะโหดมากพอสมควร
และมีการอธิบายวิธีการนี้ อยู่ในหนังสือ คู่มือการพัฒนาโปรแกรมบน windows 95 ของ Charles Petzold ฉบับแปลด้วยครับ เพราะผมเองก็หาซื้อมาอ่านอยู่เหมือนกัน แต่ใน edition ถัดมาก็มีการอธิบายการใช้ตัวช่วยแล้ว ซึ่งจะได้กล่าวถึงใน
หัวข้อถัดไป

windows programming book
Windows Programming Book

 

  1. แบบ มีตัวช่วยในการพัฒนา สิ่งที่ต้องใช้ มีส่วนที่แตกต่างกับ ข้างบน คือ

2.1 มีโปรแกรมใหม่ มาช่วย ชื่อว่า IDE(Integrated Development Environment) สิ่งนี้ เข้ามาช่วยให้การทำงานของโปรแกรมเมอร์ง่ายขึ้น โดยตัวมันเองจะรวมเอา compiler,editor,linkerและ resource compiler เข้าไว้ด้วยกัน พร้อมกับ การตั้งค่าให้สามารถ compile โปรแกรมออกมาเป็น ตัวโปรแกรมพร้อมใช้งานได้ทันที
ซึ่ง IDE ที่ว่านี้เอง ก็มีการพัฒนาเพื่อช่วยเหลือและอำนวยความ สะดวกให้โปรแกรมเมอร์เขียนโปรแกรมได้ง่ายขึ้น เช่น
มีรูปแบบ การใช้งานคำสั่งขึ้นมาให้ดู หรือจะเป็นการแสดงตัวแปรสำคัญๆที่ ต้องใช้ในคำสั่งนั้นๆ ออกมา เป็นต้น แล้วแต่ลูกเล่นที่ผู้พัฒนา IDE จะใส่เข้าไป
สำ​หรับ​ผู้​พัฒนา​ IDE  ​ออกมา​​ส่วน​ใหญ่​จะ​เป็น​เจ้าของ​​เดียว​กัน​กับ​ compiler ​ด้วย​​  ที่ดังๆ​​ก็มี​ Microsoft (เจ้าของ ​windows ​เสีย​ด้วย​​เฮ้อ​– – ‘ !!!) ​และ​ Borland (มา​จาก​Turbo Pascal ​และ​Turbo C)

ในเมื่อมันใช้งานได้ดีขนาดนี้ โปรแกรมเมอร์ ส่วนใหญ่ จึงนิยมใช้ มันแทน เพราะค่อนข้างจะสะดวกกว่าการใช้วิธีการแบบ Hardcore ดังกล่าวข้างต้น

แต่ไม่ใช่โปรแกรมเมอร์ทั้งหมดที่ต้องการใช้งานมัน เพราะพวกเขาเห็นว่า จริงๆแล้ว ไม่ควรเอาตัวเองเข้าไปผูกติดกับผลิตภัณฑ์ของบริษัทใดบริษัทหนึ่งให้มากจนเกินไป โดยเฉพาะอย่างเช่น ผลิตภัณฑ์จาก บริษัท ไมโครซอฟท์ !!! (พวกเขา ในที่นี้ รวมถึง โปรแกรมเมอร์ที่ใช้งานกับระบบ Linux ด้วย)

ทั้งนี้ โปรแกรมเมอร์เหล่านี้ บางส่วนได้พัฒนา Freeware IDE ขึ้นมาเพื่อใช้งานแทน IDE ของบริษัทดังๆเหล่านี้ แต่ก็แอบอาศัยแนวทางจาก IDE ดังๆเหล่านี้ ในการแสดงหน้าตาของโปรแกรม เพื่อให้ผู้ใช้เกิดความรู้สึกคุ้นเคย แม้จะต่างคำสั่งกันไปบ้าง แต่ก็พอใช้งานแทนกันได้ หรือจะเอาไปใช้ ใน Linux ก็ไม่เลวนัก

หมายเหตุ:
(สำหรับย่อหน้าข้างบนนี้ ช่างน่าขนลุกยิ่งนัก เพราะเขียนไว้เองเมื่อราว 10 กว่าปีก่อน ซึ่งกาลเวลาได้พิสูจน์ให้เห็นแล้วว่าเป็นความจริง !!!! โดยเฉพาะ เรื่องราวของบริษัท Borland)

ในช่วงเวลานั้น IDE ที่มี compiler ติดมาด้วย มักจะเป็นชุดพัฒนาโปรแกรมแบบเสียเงิน(มีราคาต้องจ่ายนั่นแหละ) ซึ่งมีด้วยกันอยู่ 2 เจ้า เจ้าแรกนั้นก็คงหนีไม่พ้น บริษัท Microsoft นั่นเอง ส่วนอีกเจ้าหนึ่งได้แก่ บริษัท Borland(ปัจจุบัน เปลี่ยนชื่อไปแล้ว และปล่อย compiler ให้เป็น free download แล้ว เรียบร้อย เช่นกัน)

ขณะที่ Freeware IDE นั้น จะต่างออกไป เพราะไม่มี compiler ติดมาด้วย ในบางเจ้า บางเจ้าก็มีติดมา แต่ไม่ใช่ของ windows และ Borland
สำหรับ Free compiler ที่ติดมากับ Freeware IDE นั้น ส่วนมากแล้วก็จะเป็น GNU gcc Compiler ซึ่งเป็น C/C++ Compiler ที่ใช้ในฝั่ง Opensource Software และ OS อย่าง Linux ซึ่งการนำไปใช้ก็สะดวกดี สามารถใช้งานได้เลย

  1. แบบลูกผสม

ส่วนใหญ่ จะอยู่ในลักษณะการใช้ของฟรีเสียมากกว่า เนื่องจากเป็นผลิตภัณฑ์ที่ไม่ได้มาจากบริษัทดังๆเช่น Microsoft หรือ Borland

โดยประเภทของฟรีที่ว่านั้น มีดังนี้

3.1 Free IDE เป็น IDE จากบริษัทหรือทีมโปรแกรมเมอร์อื่นที่ไม่ได้มาจากบริษัท Microsoft หรือ Borland บางเจ้า opensourceบางเจ้าให้ downloadกันฟรีๆ นิยมใช้แทน IDE จาก 2 บริษัทดังๆ ข้างต้น

3.2 Free Compiler เป็นตัวแปลภาษาที่แจกฟรี หา download ได้เลย  ส่วนใหญ่ จะเป็นตัวที่ใช้แบบข้าม platform ได้ เช่น gcc หรือ MinGW

ที่น่าสนใจ ก็คือ Microsoft ก็ได้มีการปล่อย Free compiler ออกมา นั่นคือ MS VC++ 2003 toolkit ซึ่ง ไม่มี IDE ติดมาให้ รวมถึง ทางBorland เอง ก็ได้ปล่อย C++ compiler ออกมา แต่ก็ไม่มี IDE มาให้ด้วยเช่นกัน

อย่างไรก็ตาม ชุด Free compiler ตามที่ได้กล่าวมาข้างต้นเหล่านี้ มักจะรวมเอา compiler กับ linker ไว้ด้วยกัน เพื่อให้สะดวกง่ายต่อการปรับแต่งและการเรียกใช้งาน

3.3 Free Editor ลืมบอกไปว่า Text Editor ในระยะหลังๆนี้ ได้พัฒนาลูกเล่นให้มากกว่า Text Editor ธรรมดา เช่น มี syntax hightlight , แสดงฟังก์ชันที่จำเป็นต้องใช้งานให้เราได้, สามารถ compile โปรแกรม ให้เราก็ได้ จะว่าไปแล้วคุณสมบัติก็น้องๆ IDE แล้วล่ะ สำหรับวิธีการใช้งานก็คือ เมื่อได้ Free Editor มาแล้ว ก็ตั้งค่าให้มันทำความรู้จักกันกับ compiler แค่นี้ ก็สามารถสร้างโปรแกรมได้แล้ว (แต่ต้องหาวิธีเอาเองซึ่ง ก็มักมีผู้ใจดี เขียนวิธีการทำให้ไว้แล้วอยู่เสมอ พบเจอได้ใน internet)

3.4 Free Resource Editor จากข้อมูลในช่วงเวลานั้น เท่าที่หาเจอ มีใช้อยู่ 2 เจ้า ชื่อ คล้ายๆกัน คือ ResEd กับ ResEdit
หน้าตาของโปรแกรมเท่าที่ลองใช้ ลักษณะไปกันคนละทางเลย Resource Script ที่ได้ออกมาก็คนละแนว อันแรกออกแนว ตัวเลข config ล้วนๆ ส่วนอันที่ 2 ออกแนว MS Windows จ๋ามาเลย คือ มีลักษณะคล้ายกับ resource script ใน VC++ 6.0 มากทีเดียว

จะเห็นได้ว่า เริ่มมีการแยกส่วนกันระหว่าง IDE กับ Compiler ทำให้เราสามารถเลือกที่จะใช้ IDE กับ Compiler คนละเจ้ากันได้ ขอเพียงแค่ทำให้เข้ากันได้ สามารถ compile และ Run โปรแกรมนั้นๆออกมาได้ ก็พอ

Update:

สำหรับ บริษัท Borland หลังจากที่ได้ปล่อย C++ compiler ที่ชื่อว่า Borland c/c++ 5.5 ให้เป็น Free Download ไปแล้วนั้น ช่วงต่อจากนั้น ก็ล้มหายตายจากไปตามวัฎจักรธุรกิจ โดย บริษัท Borland ได้ขายกิจการหลายๆส่วนออกมา และเปลี่ยนชื่อไปแล้ว หลายครั้ง จนกระทั่งใน ปี 2009 ได้ควบรวมกิจการเข้ากับ บริษัท Embarcadero Technologies และยังคงทำผลิตภัณฑ์เกี่ยวกับด้านการสร้างโปรแกรมอยู่ แต่ไม่ค่อยมีชื่อเสียงเท่ากับในอดีตครับ และ ผลิตภัณฑ์บางอย่างก็กลายเป็นรุ่น community ไปแล้ว

ส่วน Microsoft หลังจากปล่อย VC++ Express Suite ออกมา ซึ่งอันนี้ มี IDE ให้แต่ตัดทอนคุณลักษณะหลายอย่างออก คือมีน้อยกว่ารุ่นที่ขายปกติ หลังจากนั้น ก็ยังมี VC++ Express Suite ตามกันออกมาอีกหลายรุ่น

กระทั่งปัจจุบัน ค.ศ. 2019-2020 มีของฟรีจาก Microsoft นามว่า Microsoft Visual Studio Code ที่อัดแน่นด้วยคุณสมบัติโดนใจนักพัฒนามากมายครับ ที่สำคัญ เป็นของที่ใช้ได้ในทุก platform ด้วย ยิ่งไปกว่านั้น ยังมีบางผลิตภัณฑ์ของบริษัทที่ได้กลายเป็น รุ่น community อีกด้วยเช่นกัน

*******************************************************************

ขอสรุปตรงนี้เลยแล้วกันว่า ถ้าจะเขียนโปรแกรมบน windows ต้องมีอะไรกันบ้าง

  1. Compiler ที่สามารถแปลภาษาบน windows และสามารถสร้างโปรแกรมบน windows ให้เราได้
  2. Editor หรือ IDE เพื่อช่วยในการเขียน ถ้าเป็น IDE นอกจากจะช่วยในการเขียนแล้ว ยังช่วยรวบรวมงานให้เป็นหมวดหมู่ตามหา Bug กันได้ง่ายๆ (ในยุคหลังๆนี้ ส่วนใหญ่ จะใช้สองส่วนนี้ ควบคู่กันครับ)
  3. Resource Editor เพื่อช่วยในการสร้างไฟล์ resource script และการออกแบบหน้าตาของโปรแกรม (อันนี้ คือเฉพาะระบบของ windows เพราะถ้าเป็นระบบปฏิบัติการอื่นๆ จะใช้เครื่องมืออย่างอื่นที่ให้ผลคล้ายกันแทนเพราะโครงสร้างต่างๆของระบบ จะไม่เหมือนกัน อาทิเช่น MacOS หรือ บรรดา Linux หลากสายพันธุ์ รวมไปถึง ระบบปฏิบัติการ iOS และ Android ด้วย)

และในปัจจุบันนี้ เครื่องมือที่ใช้งาน ทั้ง 3 ข้อนั้น จะแยกส่วนกันอย่างอิสระ ซึ่งทำให้ IDE สามารถขยายการรองรับภาษาโปรแกรมต่างๆได้อย่างหลากหลาย ไม่ยึดติด สามารถพัฒนากันได้ตั้งแต่ desktop ไปจนถึง smart phone แต่นั่นก็เป็นเรื่องที่อยู่นอกเหนือจากขอบเขตของเวบนี้ ใครสนใจก็ลองค้นคว้ากันต่อเองเถิด

 

จบ​แล้ว​ครับ ​​เรื่องเครื่องมือ​​ จริงๆ​แล้ว​​มี​แค่นี้​​ ส่วนที่เหลือ​​เป็น​… ​การบอกเล่าประสบการณ์โดยสรุป.

แล้ว​พบ​กัน​ใหม่ ​​สวัสดีครับ.

 

เครื่องมือสำคัญในการพัฒนาโปรแกรมบน windows(win32 API)
Tagged on:             

Leave a Reply