logo
مهمان گرامی خوش آمدید ! برای فعال شدن تمامی امکانات لطفا ورود یا ثبت نام.

توجه

Icon
Error

ورود


آشنايي با برنامه نويسي به زبان ++c براي ويندوز موبايل
Admin
#1 ارسال شده : جمعه, 10 ژوئن 2011 04:29:02 ب.ظ(UTC)
رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 22/04/2011(UTC)
ارسالها: 20
Man

در اين مقاله مقصود ما از پلتفرم ويندوز موبايل Mobile PC يا Tablet PC نيست. اين دو نوع سيستم جديد در حقيقت اشكال تغييريافته همان ويندوز معمولي دسكتاپ هستند كه قابليتهاي مربوط به پشتيباني از ارتباطات سيار، بيسيم و فناوري جوهر ديجيتال به آنها افزوده شده است.

شكل 1 نموداري را نشان ميدهد كه چهار خانواده متفاوت از ابزارهاي ديجيتالي يعني Mobile/Tablet PC ،Pocket PC ،smartphone و Smart Objects را نشان ميدهد. چنانكه ملاحظه ميكنيد، هرچه حجم، اندازه و كارايي وسيله بيشتر شود، سهولت جابهجا كردن آن كمتر ميشود. دو نوع ويندوز موبايل كه در اين مقاله درباره آنها صحبت ميكنيم، در ميانه اين طيف قرار ميگيرند.



راي برنامهنويسي روي هر يك از دو نوع فرعي ويندوز موبايل، يك SDK يا كيت توسعه نرمافزاري توسط مايكروسافت ارايه شده كه به صورت رايگان از سايت اين شركت قابل دريافت است.

برنامهنويسي براي گوشيهاي مجهز به اين سيستمعامل روي كامپيوترهاي پيسي معمولي و با استفاده از ابزارهايي مثل ويژوال استوديو صورت ميگيرد و از اين حيث تفاوتي با برنامهنويسي براي پلتفرمهاي ديگر وجود ندارد، اما از آنجا كه اين برنامه بايد نهايتاً روي گوشيهاي موبايل يا كامپيوترهاي جيبي اجرا شوند، لازم است برنامه نهايي روي اين ابزارها ريخته شود. به اين عمل اصطلاحاً استقرار نرمافزار (Deployment) ميگويند.

پلتفرم برنامهنويسي
ويندوز موبايل 5
InROM
NET CF 1.0 SP3.
MFC 3.0/ATL 4.0
State and Notification Broker
DirectShow
(raw camera access)
Direct 3D Mobile
Direct Drow
Picture Picker
Contact Picker
Windows Media 10OCX
Managed Telephony
Managed Outlook Mobile
Managed Messaging
(SMS, Mail)
Managed Config Mgr
GPS API
(Get Device ID (unpriv
Query Policy
Install
NET CF 2.0.
SQL Mobile 2005
MFC 8.0/ATL8.0
جدول 1
عمليات اشكالزدايي نيز ميتواند همزمان در حالي كه گوشي از طريق يك مجراي ارتباطي مانند USB به PC متصل است، صورت گيرد. از آنجا كه دسترسي به گوشيها يا PDAهاي واقعي گاهي امكانپذير نيست، نرمافزار ويژوالاستوديوي مايكروسافت اين امكان را فراهم آورده است كه برنامهنويسان كدهاي خود را روي يك گوشي ياPocket PC مجازي به نام Emulator بريزند و آزمايش كنند.

در اين مقاله ما به نسخه پنج ويندوز موبايل استناد ميكنيم. بنابراين خوب است بدانيم كدام رابطهاي اصلي برنامهنويسي (API) در اين پلتفرم موجودند و كدام يك بايد جداگانه نصب شوند.

جدول 1 بهطور خلاصه نشان ميدهد كه روي يك گوشي يا كامپيوتر جيبي مجهز به ويندوز موبايل 5 كدام رابطهاي برنامهنويسي موجودند. اينها زير ستون In ROM فهرست شدهاند. مقصود اين است كه APIهاي مذكور از قبل روي ROM وسيله مستقر شدهاند و آماده استفاده هستند.

در زير ستون Install مشاهده ميكنيد كه چارچوب داتنت 2، نسخه 2005 ديتابيس SQL Mobile و نسخه هشتم دو API مخصوص برنامهنويسي در محيط ++C را بايد جداگانه نصب كنيد. داتنت 2 (نسخه كامپكت) برنامه نصب جداگانهاي دارد. بانك اطلاعاتي SQL Mobile نيز به همين ترتيب است و جديدترين نسخههاي MFC و ATL نيز هنگام نصب ويژوال استوديوي 2005 به طور خودكار روي پيسي شما مستقر ميشود و هنگام استقرار نرمافزار توليدي روي گوشي، روي آن منتقل ميشود.

همه اين APIها را ميتوانيد در كيت توسعه نرمافزاري ويندوز موبايل بيابيد. شكل 2 كل معماري برنامهنويسي روي ويندوز CE، موبايل، Tablet و XP Embedded را در كنار يكديگر نشان ميدهد و ميتوانيد محل كاربرد دقيق هريك از APIهاي مورد بحث را در اين دياگرام ملاحظه كنيد.
Admin
#2 ارسال شده : جمعه, 10 ژوئن 2011 04:31:28 ب.ظ(UTC)
رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 22/04/2011(UTC)
ارسالها: 20
Man

مقايسه NET CF. و Native Code

به طور كلي دسترسي به كد ويندوز موبايل از دو طريق امكانپذير است: يكي استفاده از نسخه فشرده داتنت (NET Compact Framework.) و ديگري كد بومي (Native Code) ويندوز موبايل. نسخه فشرده داتنت زيرمجموعهاي از نسخه استاندارد آن است كه برخي از قابليتهاي آن به دليل ناسازگاري با معماري ويندوز CE يا به قصد كاستن از اندازه و حجم زيربناي نرمافزار حذف شدهاند.

هر يك از اين دو روش، مزايا و معايبي دارند. مزيت استفاده از داتنت فشرده، سهولت برنامهنويسي، امكان توليد سريع نرمافزار، اشكالزدايي آسان از برنامه، عدم نياز به مديريت مستقيم حافظه، سهولت برنامهسازي ويژوال، استفاده از متدولوژي شيءگرا، عدم نياز به دستكاري مستقيم رجيستري ويندوز و شباهت كدها به حال و هواي برنامهنويسي براي كامپيوترهاي معمولي دسكتاپ و سرور است.




عيب اصلي استفاده داتنت فشرده، پايين آمدن سرعت اجراي برنامهها و كارايي و انعطافپذيري آنها است. همچنين داتنت2 در مقايسه با كد بومي ويندوز موبايل تنها درصد كوچكي از API ويندوز را پوشش ميدهد و مابقي بايد با استفاده از تكنيك P/Invoke و دسترسي غيرمستقيم و با واسطه كد بومي پوشش داده شود. به زبان سادهتر، خيلي از كارهايي كه در كد بومي ميتوان انجام داد را در محيط داتنت فشرده نميتوان انجام داد؛ مگر با كمك گرفتن از همان كد بومي.

متقابلاً، مزيت استفاده از كد بومي ويندوز موبايل بالارفتن سرعت اجراي برنامهها، دسترسي كامل به تمام بخشها و قابليتهاي سيستمعامل و دسترسي مستقيم به حافظه براي افزايش كارايي و انعطافپذيري برنامه است. ايراد اصلي كار با كد بومي، دشوار بودن آن است.

موفقيت در مديريت مستقيم حافظه نيازمند تبحر در فنون برنامهنويسي سطح پايين (Low Level) و آشنايي نسبي با زبان ماشين است. همچنين دستكاري رجيستري ويندوز هنگام نصب برنامه اغلب اوقات اجتنابناپذير است.

توليد برنامه با اين روش زمانبر و خستهكننده است و برنامهنويس بايد شكيبايي پيشه كند. علاوه بر اينها، كار با منطق شيءگرا در محيط كد بومي اصلاً به آساني محيط داتنت نيست و تنها با مدد گرفتن از فناوري مياني MFC ميتوان حال و هواي برنامهنويسي شيءگرا را به تجربه كار در محيط داتنت نزديك كرد. البته تا دو سال پيش برنامهنويسي با كد بومي حتي از اين هم سختتر و مستلزم نصب و بهكارگيري ابزار ++eMbedded Visual C بود.
Admin
#3 ارسال شده : جمعه, 10 ژوئن 2011 06:06:48 ب.ظ(UTC)
رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 22/04/2011(UTC)
ارسالها: 20
Man

بان اصلي؛ ++C

در اين مقاله به سراغ روش سختتر، يعني استفاده از كد بومي ويندوز موبايل ميرويم. روش آسانتر (كار با داتنت فشرده) در مقاله جداگانهاي در همين شماره از مجله توضيح داده شده است. زبان اصلي كد بومي ويندوز ++C است. اين زبان فوقالعاده دشوار و پيچيده است؛ زيرا با منطق و زباني نزديك به زبان ماشين كار ميكند، اما چرا كد بومي ويندوز موبايل با اين زبان نوشته شده است؟ علت اين است كه ويندوز CE اساساً براي وسايل ديجيتالي كوچك طراحي شده است و چون اين وسايل جاي كمي براي پردازش و ذخيرهسازي دادهها دارند، بايد زيربناي نرمافزارها (footprint) بسيار كوچك باشد.





بنابراين لازم بوده است از زباني نزديك به زبان ماشين استفاده شود تا برنامهها با حداقل حجم و حداكثر كارايي و سرعت اجرا شوند. خالي از لطف نيست كه بدانيد حجم اغلب برنامههايي كه با اين روش براي ويندوز موبايل توليد ميكنيد، به كوچكي ويروسهاي كامپيوتري هستند كه روي پيسيها پرسه ميزنند! متأسفانه بار اصلي اين مدل برنامهنويسي به دوش سازنده نرمافزار است و راه گريزي وجود ندارد.


در اين مقاله ميكوشيم فضاي پيچيده برنامهنويسي ++C را كمي ساده كنيم و با حال و هواي كدنويسي در اين محيط مأنوس شويم. براي اجراي مثالي كه در ادامه مقاله تشريح شده است، بايد از ابزار Visual C++ 2005 استفاده كنيد كه همراه ويژوال استوديوي 2005 نصب ميشود.

توصيه ميكنم براي محكمكاري، SDK ويندوز موبايل 5 را نيز دانلود و نصب كنيد تا مشكلي پيش نيايد. نزديك به هشتاد مثال برنامهنويسي با كد بومي ويندوز موبايل نيز در اين SDK موجود است. نصب داتنت 2 يا SQL Mobileدغدغه اين مقاله نيست.


برنامههاي تحت ويندوز موبايل عمدتاً پنج نوع هستند: Win32 Exe ،Win32 DLL ،MFC ،ATL و يك نوع Console Application را نيز ميتوان اضافه كرد. نوع اول مهمترين است و مثال اين مقاله نيز از همين نوع است. نوع دوم براي توليد سرويسهاي سيستمعامل (مانند پلاگينهاي قابل نصب روي دسكتاپ كوچك ويندوز موبايل) مناسب است.

معماري MFC در حقيقت براي كساني در نظر گرفته شده است كه مايلند از متدولوژي شيءگرا و مزاياي آن در ويندوز موبايل راحتتر استفاده كنند وATL نيز براي توليد كامپوننتها يا استفاده از كامپوننتهاي پيشساخته در نظر گرفته شده است.


صرفنظر از گرامر خاص زبان ++C، گفتمان اصلي حاكم بر اين زبان، مديريت حافظه است. هنگامي كه با اين زبان برنامه مينويسيد، پنجاه درصد كد شما چيزي نيست جز مديريت بيتها و بايتها در حافظه و تنها نيمي از سورس كد واقعاً به كار اصلي مد نظر شما اختصاص دارد. بنابراين در اغلب مواقع، علت كار نكردن يا درست كار نكردن برنامهِ شما اشتباهات سهوي برنامهنويسي در مديريت حافظه است، نه چيز ديگر.

اصولاً دشواري گرامر ++C نيز به عناصر و گزارههاي مرتبط با حافظه مربوط ميشود. معروفترين آنها، «اشارهگرها» هستند كه به «كابوس برنامهنويسان» مشهورند. بنابراين خوب است قبل از ورود به دنياي برنامهنويسي موبايل، حتماً به تكنيكهاي اساسي مديريت حافظه مسلط شويد.
کاربرانی که در حال مشاهده انجمن هستند
Guest (2)
جهش به انجمن  
شما مجاز به ارسال مطلب در این انجمن نمی باشید.
شما مجاز به ارسال پاسخ در این انجمن نمی باشید.
شما مجاز به حذف مطلب ارسالی خود در این انجمن نمی باشید.
شما مجاز به ویرایش مطلب ارسالی خود در این انجمن نمی باشید.
شما مجاز به ایجاد نظر سنجی در این انجمن نمی باشید.
شما مجاز به رای دادن در این انجمن نمی باشید.

YAFVision Theme by Jaben Cargman (Tiny Gecko), modifications by Thomas Baumann
قدرت گرفته از YAF | YAF © 2003-2011, Yet Another Forum.NET
این صفحه در مدت زمان 0/137 ثانیه ایجاد شد.