. . . . . . . .นี่คือ compiler 32 Bits ยอดนิยม ใช้ก็ง่ายเล่นได้ทั้งบน DOS และ Window โปรแกรมที่เราเขียนมาจะเป็นโปรแกรมแบบ protect mode หรือเป็นโปรแกรม 32 Bits หมดปัญหาเรื่องการจัดการหน่อยความจำไปได้ เพราะมันมี DOS4GW เป็นตัวจัดการ ไม่ต้องยุ่งยากไปเขียนการจัดการ Memory, XMS, EMS อีกทั้งการทำงานที่รวดเร็วแบบ 32 bits ของมัน ยังทำให้เกมส์ของเราใช้เครื่องได้อย่างมีประสิทธิภาพอีกด้วย ถ้าจะพูดถึงการหาเจ้าตัว compiler ตัวนี้ก็ถือว่าหายากพอดู เพราะเมืองไทยไม่เป็นที่นิยมกันสักเท่าไร หมายถึงเขียนโปรแกรม 32 Bits run บน DOS นะครับ แต่ถ้าเป็น Window ก็ถือว่าดังอยู่พอสมควร แต่ก็มีข้อเสียบ้าง คือเราต้องเขียน function ใช้งานเองเกือบทั้งหมด เพราะตัว function มาตรฐานบน DOS ของมันมีน้อยกว่าที่เราเคยใช้มาจาก compiler ตัวอื่นเยอะ เรียกได้ว่าเป็น compiler สำหรับมืออาชีพจริงๆ เพราะต้องพัฒนาเองหลายอย่าง และที่ผมใช้อยู่นี่เป็น WATCOM version 9.0 + 10.0 ไม่สามารถใช้คุณสมบัติของภาษา C++ ได้อย่างเต็มที่คือ ขาด Library สำหรับ LINK บางตัวไม่สามารถใช้ function new ได้ แต่ถ้าเขียนโปรแแกรมแบบธรรมดา ก็ไม่มีปัญหาอะไร แต่ก็ยุ่งยากพอสมควรสำหรับการเริ่มต้น

การใช้ WATCOM C 9.0 และก็ WATCOM C/C++ 10.0

. . . . . . . .ที่ผมเขียนแบบนี้ก็เนื่องมาจากว่า WATCOM C 9.0 เป็น C ธรรมดา ไม่ใช่ C++ แต่ WATCOM C/C++ 10.0 ใช้ C++ ได้แต่ไม่เต็มประสิทธิภาพซะนี่เพราะว่าใช้ function new ไม่ได้ คือผมว่ารูปแบบการกำหนด การเขียน C++ ดูง่ายกว่าเลยเป็นว่าผมเขียนทั้ง C และ C++ และที่สำคัญอีกอย่างคือ WATCOM 10.0 ไม่มี Library บน DOS แต่ไปมีใน WATCOM 9.0 ซะนี่ แต่ผมอยากได้ compiler ใหม่ๆ เลยรวมกันซะเลย ซึ่งที่ใช้มาก็ไม่มีปัญหาอะไร

วิธีติดตั้ง WATCOM C/C++

. . . . . . . .ติดตั้ง WATCOM C 9.0 ซึ่งจะมี Library สำหรับ DOS ครบ จากนั้น ติดตั้ง WATCOM C 10.0 ทับอีกครั้งหนึ่ง และต้องมีการกำหนดอะไรบางอย่างให้กับตัว WATCOM ด้วย ที่ file autoexec.bat จะต้องมีการกำหนดแบบนี้

SET PATH=C:\WATCOM\BINW;C:\WATCOM\BIN;

SET LIB=C:\WATCOM\LIB386;C:\WATCOM\LIB386\DOS;

SET INCLUDE=C:\PROMAN\BALL\XLIB;C:\WATCOM\H;C:\WATCOM\H\WIN

SET WATCOM=C:\WATCOM\

SET EDPATH=C:\WATCOM\EDDAT

และที่ file system.ini ที่อยู่ใน directory WINDOWS จะต้องกำหนดแบบนี้

[386Enh]

device=c:\watcom\binw\wdebug.386

หลังจากที่ติดตั้งแล้วก็ reboot เครื่องอีกครั้งหนึ่ง แล้วก็กลับเข้ามาใหม่ จะเห็น ICON WATCOM ชื่อ IDE จากนั้น double click มันแล้วก็มาลุยต่อไป

การสร้าง Project

. . . . . . . .ไปที่ เมนู File รายการ New Project จะเห็นหน้าต่างให้ใส่ชื่อ project แล้วก็จะมีหน้าต่าง New target ให้เลือก Target Environment DOS-32 Bits และ Image Type เลือก DOS4GW Executable (.exe) กด Ok ก็จะเห็นหน้าต่างขึ้นมา จากนั้นกด Insert จะเป็นการเพิ่มแฟ้มเอกสารของเรา ลองใส่ชื่อ main.cpp กดOk มันก็จะมีชื่อปรากฎแล้ว 1 แฟ้มแต่จะมีต่อท้าย (n/a) คือมันยังไม่ได้สร้างจริงๆ นะเอง เราก็เลือกแฟ้ม main.cpp กด Enter หรือ double click ที่ฃื่อ file นั้นได้ ก็จะมีหน้าจอ Editor สชขาวๆปรากฎออกมา วิธีการใช้ Editor ก็ศึกษาเอาเองไม่ยาก ลองใส่ ตัวอย่าง source code นี่ดูนะครับ
#include <stdio.h>

#include <conio.h>

int main( )

{

printf( "Sawasdee.\n" );

return 0;

}

จากนั้นกด F4 จะเป็นการ compile โปรแกรม และกด Ctrl+R เป็นการ run โปรแกรมที่เราสร้างไว้แล้ว คราวนี้ง่ายขึ้นแล้วครับที่นี่

วิธีการตั้งค่า Configuration ของ WATCOM เพื่อความเจ๋ง

. . . . . . . .ไปที่เมนู Options รายการ Link Switches เลือกแล้วจะมีหน้าต่าง Link Switches จะมีหัวข้อให้ปรับแต่งค่าดังนี้ แล้วกด Ok นะครับ
  1. Basic Switches ที่กลุ่ม Debugging infomation ให้เลือก No debug infomation และ map file จะมีเครื่องหมายกากบาทเป็นการสร้าง map file ซึ่งไม่จำเป็นเท่าไร เอาเครื่องหมายกากบาทออกครับ
  2. Import, Export and Library Switches ไม่ต้องปรับแต่งค่าอะไร
  3. Advance Switches ให้มีเครื่องหมายกากบาทที่ Case sentitive linke, เอาเครื่องหมายกากบาทออกที่หัวข้อ Product symbol files(op symf)
  4. Special Switches ไม่ต้องปรับแต่งค่าอะไร

. . . . . . . .ไปที่เมนู Options รายการ Make Utility Switches จะมีหน้าต่างขึ้นมาให้ปรับแต่ง ให้ดูทางด้านขวานะครับจะเห็นข้อความ $*.lst ให้เอาออก ไม่ต้องปรับแต่งอะไรเพิ่มกด Ok

. . . . . . . .ไปที่เมนู Options รายการ C++ compiler switches จะมีหน้าต่างขึ้นมาให้ปรับแต่ง ทำตามนี้นะครับ

  1. File options Switches ไม่ต้องปรับแต่งค่าอะไร
  2. Diagnostics Switches เลือก Warning level 1 [w-1]
  3. Source Switches เลือก Force enum to be switch type int[-ei] ให้มีเครื่องหมายกากบาทนะครับ
  4. Miscellaneous Switches ไม่ต้องปรับแต่งค่าอะไร
  5. Optimization Switches เลือกปรับแต่งได้ตามสะดวก ปกติจะเลือก Fastest position code[-otexan] แต่ผมจะเลือก Average space and time
  6. Debugging Switches ที่กรอบ Debugging style เลือก No debugging information
  7. CodeGen Strategy Switches ที่กรอบ Floating-point Level เลือก In-Line 80387 instructions[-fp3],ที่กรอบ Floating-point Model เลือก Floating-point calls[-fpc] และกากบาทที่ช่อง Compability with V9.0[-fpr]
  8. Register Usage Switches ไม่ต้องปรับแต่งค่าอะไร
  9. CodeGen Optino Switches ไม่ต้องปรับแต่งค่าอะไร
  10. Memory model and Processor Switches ที่กรอบ Target Processor เลือก 80486 Stack base calling[-4s] นะครับ สำคัญๆ จะเลือกหัวข้อไหน ต้องเป็น Stack base calling
  11. C++ Compiler Switches ไม่ต้องปรับแต่งค่าอะไร

. . . . . . . .กด Ok จากนั้นจะมีหน้าต่างยืนยัน ก็ตอบ Ok ไป ทีนี้ก็เป็นการเขียนโปรแกรมบน protect mode แล้วครับ แต่ไม่หมดแค่นั้น

สาเหตุที่ compiler ไม่ผ่าน

. . . . . . . .สาเหตุดังกล่าวเนื่องมาจากไม่ได้ตั้งค่าตามที่บอกไว้ข้างบน และขาด Library บางตัว ก็มีบางตัวอีกเช่นกันที่เราต้อง หลอก compiler ให้ไปที่ directory \WATCOM\LIB386 จะเห็นชื่อแฟ้ม CLIB3R.LIB และ CLIB3S.LIB ให้ copy CLIB3R.LIB เป็น PLIB3R.LIB และ copy CLIB3S.LIB เป็น PLIB2S.LIB สาเหตุคือ Library ไม่ครบนะครับต้องหลอกมันหน่อย แหะ แหะ

เทคนิคการ compiler อย่างรวดเร็ว

. . . . . . . .หลังจากที่เรากด F4 ให้ compile แล้วให้เลื่อน mouse มา click ที่ว่างๆ ของ bar ข้างล่างที่มีปุ่ม เริ่ม-start ของ window จะทำให้หน้าต่างของ WATCOM ไม่ active แต่ก็ยังทำการ compile อยู่แต่เร็วกว่าเดิมครับเพราะมันทำงานแบบ background

. . . . . . . .และอีกเทคนิคคือ ที่ directory project ของเราจะมี file make ของ WATCOM ให้สร้าง Bath file ชื่อ 00.BAT ข้างในมีแบบนี้นะครับ

wmake -f project.mk -h -s -e
ที่ข้อความ project.mk คือ make file ของ WATCOM ลอง dir ดูก็ได้นะครับจะเห็นแฟ้มนามสกุล *.mk เราก็ใส่เข้าไป แล้วก็เรียก 00.BAT สาเหตุที่ทำแบบนี้เพราะว่า Editor ของ WATCOM ไม่ค่อยหน้าใช้เท่าไร ผมมาใช้ Editor ของ Borland C/C++ 2.0 for DOS แทน เปิดมาสองหน้าต่าง หน้าต่างแรกเป็น BC หน้าต่างที่สองเป็น compile เวลา compile ก็กด 00 แล้วก็จะได้ EXE เหมือนกัน สำคัญๆ อย่าลืม copy แฟ้ม DOS4GW.EXE มาด้วยละครับ แต่เวลาเพิ่มหรือลบแห้มใน project ให้ไปทำที่หน้าจอของ WATCOM IDE หรือจะ compile ที่ WATCOM IDE ก็ได้ตามสะดวก

. . . . . . . .หลังจากนั้นลองเขียนตามบทเรียนที่ HomePage แห่งนี้นะครับ ใช้ได้เหมือนกัน หรือจะไปเขียนกราฟฟิกเลย ก็มีเอกสารให้ dowload ครับ ที่ HomePage แห่งนี้อีกเช่นกัน ผมรวบรวมมาให้เยอะแยะ ขอให้สนุกกับการเขียนโปรแกรมนะครับ สวัสดี