ဒါနဲ႔ Visual C++ 2008 Express Edition ကိုသံုးၿပီး OpenGL application ေတြကို ဖန္တီးဖို႔ ၾကိဳးစား ၾကည့္ခဲ့ပါတယ္။ GLUT မွ မဟုတ္ပါဘူး GLUI ကိုပါသံုးၿပီး application ေတြကို အဆင္ေျပေျပ ဖန္တီးဖို႔ ၾကိဳးစားခဲ့ပါတယ္။ Visual C++ 2008 Express Edition ကို သေဘာက်တာ တစ္ခုက ေနာက္ဆံုးထြက္လည္း ျဖစ္တယ္၊ free download လုပ္လို႔ ရတဲ့အတြက္ ဘယ္ႏွစ္ခါ ျပန္ install လုပ္လုပ္ အဆင္ေျပမယ္။ ၿပီးေတာ့ Express Edition က ေက်ာင္းသားေတြ အတြက္ လံုေလာက္တဲ့ အျပင္ system resource ေတြကို သံုးတဲ့ ေနရာမွာ လည္း PRO ေတြထက္ နည္းတဲ့ အတြက္ အလုပ္လုပ္တာ ျမန္တယ္။ Visual C++ 2008 Express Edition ကို သံုးဖို႔အတြက္ ကြန္ပ်ဴတာထဲမွာ 512MB ေလာက္ memory ရိွရင္ကို ရပါတယ္။ 2008 Professional (Full) version ကို သံုးမယ္ဆိုရင္ 1GB ေလာက္ ေတာင္းတာနဲ႔ ယွဥ္ၾကည့္ ႏိုင္ပါတယ္။
ဘယ္လိုပဲ ျဖစ္ျဖစ္ပါ။ ကၽြန္ေတာ္ကေတာ့ ေလွ်ာက္စမ္းရတာ ၀ါသနာပါေတာ့ OpenGL (GLUT/GLUI) application ေတြကို Visual C++ 2008 Express Edition မွာ ေရးၾကည့္ဖို႔ ၾကိဳးစားခဲ့ပါတယ္။
ပထမဆံုး နားလည္ထားရမွာက OpenGL လိုမ်ိဳး API ေတြက Windows OS ေတြနဲ႔ native လုပ္ေဆာင္ ခ်က္ေတြကို သံုးပါတယ္။ dot NET လိုမ်ိဳးေတြကို မသံုးပါဘူး။ Express Edition IDE ေတြမွာ သာမာန္အားျဖင့္ ျပည့္စံုတဲ့ Win32 လိုမ်ိဳး native လုပ္ေဆာင္ခ်က္ေတြ မပါပါဘူး။ ဒါေၾကာင့္ ကၽြန္ေတာ္တို႔က သီးသန္႔ install လုပ္ေပးဖို႔ လိုပါတယ္။
Windows XP အတြက္ဆိုရင္ Microsoft Platform SDK (ကၽြန္ေတာ္ အဲဒီအေၾကာင္း ေရးဖူးပါတယ္) ကို install လုပ္ၿပီး သံုးလို႔ ရပါတယ္။ Platform SDK (Software Development Kit) မွာ native Windows ရဲ႕ libraries ေတြ ပါတဲ့အတြက္ ပံုမွန္ Win32 Application ေတြကို ဖန္တီးခြင့္ ေပးပါတယ္။ Win32 ကို OpenGL မွာေရာ၊ DirectX ကပါ အသံုးျပဳ ပါတယ္။
ဒါေပမယ့္ Platform SDK က Windows Vista မွာ အလုပ္ မလုပ္ပါဘူး။ အဲဒီအတြက္ Microsoft က Windows Vista အတြက္ Windows SDK ကို ဖန္တီးေပးခဲ့ ပါတယ္။ Windows SDK ဆုိတာ Platform SDK ရဲ႕ Vista version လို႔ ေျပာလို႔ ရပါတယ္။ Windows SDK က Windows XP မွာလည္း အလုပ္လုပ္ ပါတယ္။ ဒါေၾကာင့္ Platform SDK ကို သံုးမေန ေတာ့ပဲနဲ႔ Windows SDK ကိုပဲ သံုးလိုက္ပါ။
Visual C++ 2008 Express Edition ကို Microsoft web site ကေန အခမဲ့ အလြယ္တကူ download လုပ္လို႔ ရပါတယ္။ Web install မလိုခ်င္ရင္ CD/DVD ISO file ကိုလည္း download လုပ္လု႔ိ ရပါတယ္။ ကၽြန္ေတာ္ကေတာ့ Expression Edition all-in-on CD ကို download လုပ္ၿပီး install လုပ္ သံုးခဲ့ပါတယ္။ ေနာက္ၿပီး Windows SDK ကို လည္း Microsoft web site ကေန အခမဲ့ အလြယ္တကူ download လုပ္ခဲ့ပါတယ္။ Web install ကို မသံုးပဲ DVD ISO image file ကို download လုပ္ၿပီး install လုပ္ခဲ့ပါတယ္။
GLUT နဲ႔ GLUI application ေတြကို ေရးဖို႔ အတြက္ Visual C++ 2005 နဲ႔ ခ်ိတ္တဲ့ အတိုင္းပဲ အလြယ္တကူ ခ်ိတ္ႏိုင္ခဲ့ပါတယ္။ တစ္ခုပဲ ရိွတယ္ GLUI အတြက္ အသစ္ထြက္တဲ့ glui32.2005.lib ေလးကို သံုးေပါ့။ ဒါမွ အဆင္ေျပမွာ။ အခုဆိုရင္ ကၽြန္ေတာ္ကေတာ့ Visual C++ 2008 Express Edition ကို သံုးၿပီး OpenGL ေရာ၊ DirectX ေရာ၊ SDL Library ေတြကိုပါ သံုးလို႔ ရေနပါၿပီ။ တစ္ခုေကာင္းတာက Visual C++ 2008 Express Edition မွာ Service Pack 1 တစ္ခါထဲ ပါလာၿပီးသား ဆိုေတာ့ သီးသန္႔ install လုပ္စရာ မလိုေတာ့ဘူးေပါ့။ SDL က Visual Studio နဲ႔ သံုးဖို႔ အတြက္ Service Pack 1 ကို install လုပ္ထားဖို႔ လိုပါတယ္။
OK…။ အခု ကၽြန္ေတာ္ ေျပာျပခ်င္တာက တစ္ခါတစ္ေလ ၾကံဳရမယ့္ error/warning message ေလးေတြ အတြက္ပါ။
String ေတြကို သံုးၿပီး text နာမည္ေတြ သံုးဖို႔ ၾကိဳးစားတ့ဲ အခါမွာ ေအာက္ကလိုမ်ိဳး၊ ဒါမွမဟုတ္ ဆင္တူတဲ့ error မ်ိဳး ရလာတတ္ပါတယ္။
cannot convert parameter 2 from 'const char [27]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
တစ္ခါတစ္ေလ (အထူးသျဖင့္ DirectX) program ေတြမွာ ဒီလိုမ်ိဳး ဆင္တူတဲ့ ျပႆနာမ်ိဳး ေတြ႕ရ တတ္ပါတယ္။
Win32 ------
Linking...
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
C:\devkitPro\projects\OpenGLTest\Debug\OpenGLTest.exe : fatal error LNK1120: 1 unresolved externals
ဒါဆိုရင္ Project Properties ရဲ႕ Configuration Properties ထဲကေန Linker ေအာက္က System ကို ေရြးလိုက္ပါ။ ညာဘက္က Subsystem ဆိုတဲ့ နားမွာ Window (/SUBSYSTEM:WINDOW) ဆိုတာကို ေရြးေပးလိုက္ပါ။ SDL အတြက္လည္း လိုပါတယ္။
SDL ကို သံုးမယ္ ဆိုရင္ Project Properties Window ထဲက C/C++ ေအာက္က Code Generation ကို ဖြင့္ပါ။ ညာဘက္က Runtime Library မွာ Multi-threaded Debug DLL ဆိုတာကို ေရြးထားေပးဖို႔ လိုပါတယ္။
ဒါဆိုရင္ Visual C++ Express Edition ေတြကို သံုးၿပီး Multimedia application ေတြ ဖန္တီးတာကို စမ္းၾကည့္္လုိ႔ ရၾကမယ္လို႔ ေမွ်ာ္လင့္ပါတယ္။

0 comments:
Post a Comment