ผมยังไม่เคยเขียน C, C++ หรือ C# มาก่อนเลย มีคำถามอยากจะถาม ... จุดประสงค์หลัก ผมต้องการเขียน Windows Desktop Application ซึ่งประกอบไปด้วยไฟล์ที่คอมไฟล์แล้วเป็น .exe กับ .dll (.dll นี่จำเป็นต้องมี เพราะเป็นข้อกำหนดของระบบที่ต้องให้เป็นเช่นนั้น) โดยโปรแกรมจะทำหน้าที่ดักจับ Window Message แล้วไปทำงานตาม Message ที่ดักได้ เท่าที่ดูโค้ดตัวอย่างการดักจับนี้ เขาก็ใช้ C++ เขียน แต่ได้อ่านคร่าวๆเกี่ยวกับคำว่า Managed/Unmanaged Code มาบ้าง ก็เลยสงสัยว่า
1. ถ้าใช้ C++ มันจะสร้างออกมาเป็นเฉพาะ Unmanaged Code อย่างเดียว หรือว่าสามารถทำให้เป็น Managed Code ได้ด้วย
2. กลับกัน ถ้าเขียน C# จะทำได้แต้ Managed Code อย่างเดียวเท่านั้น หรือว่าสามารถเลือกให้สร้างเป็น Unmanaged Code ก็ได้ด้วย
3. C# สร้างไฟล์ .dll ได้ด้วยหรือไม่
4. ถ้าเป็น Managed Code ในการรันโปรแกรม มันต้องใช้ทรัพยากรของเครื่อง เช่นหน่วยความจำและซีพียูไทม์ มากกว่าพวก Unmanaged Code ใช่หรือไม่ แล้วจะมีผลทำให้ทำงานช้ากว่าพวก Unmanaged Code ใช่ไหม
5. ถ้าเป็น Managed Code แปลว่าผมสามารถนำโปรแกรมไปรันบน Windows Tablet และ Windows Phone ได้ด้วยใช่หรือไม่ ถ้าได้ ต้องมีการแก้ไขโค้ดบางส่วนให้รันต่างอุปกรณ์ด้วยหรือไม่
6. ในความเห็นของคุณ สำหรับ Desktop Application แล้ว ควรเขียน C++ หรือ C# ดีครับ (C# ดูมีอนาคตดีกว่าหรือเปล่า)
ขอช่วยไขคำตอบด้วยนะครับ
ขอบคุณครับ
C++ VS C# , Managed VS Unmanaged Code
1. ถ้าใช้ C++ มันจะสร้างออกมาเป็นเฉพาะ Unmanaged Code อย่างเดียว หรือว่าสามารถทำให้เป็น Managed Code ได้ด้วย
2. กลับกัน ถ้าเขียน C# จะทำได้แต้ Managed Code อย่างเดียวเท่านั้น หรือว่าสามารถเลือกให้สร้างเป็น Unmanaged Code ก็ได้ด้วย
3. C# สร้างไฟล์ .dll ได้ด้วยหรือไม่
4. ถ้าเป็น Managed Code ในการรันโปรแกรม มันต้องใช้ทรัพยากรของเครื่อง เช่นหน่วยความจำและซีพียูไทม์ มากกว่าพวก Unmanaged Code ใช่หรือไม่ แล้วจะมีผลทำให้ทำงานช้ากว่าพวก Unmanaged Code ใช่ไหม
5. ถ้าเป็น Managed Code แปลว่าผมสามารถนำโปรแกรมไปรันบน Windows Tablet และ Windows Phone ได้ด้วยใช่หรือไม่ ถ้าได้ ต้องมีการแก้ไขโค้ดบางส่วนให้รันต่างอุปกรณ์ด้วยหรือไม่
6. ในความเห็นของคุณ สำหรับ Desktop Application แล้ว ควรเขียน C++ หรือ C# ดีครับ (C# ดูมีอนาคตดีกว่าหรือเปล่า)
ขอช่วยไขคำตอบด้วยนะครับ
ขอบคุณครับ