• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 21 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: آشنایی با برنامه نویسی ++c برای ویندوز موبایل
حالت موضوعی
#1
براي اين‌كه بتوانيد براي گوشي‌هاي مجهز به ويندوز موبايل برنامه‌نويسي كنيد، يا بايد از چارچوب فشرده دات‌نت (NET CF.) استفاده كنيد يا با زبان اصلي اين سيستم‌عامل (++C) كار كنيد. در اين مقاله پس از مرور مقدمات، با حال و هواي برنامه‌نويسي براي سيستم‌عامل ويندوز موبايل با استفاده از زبان Visual C++ 2005 آشنا خواهيد شد و اركان يك برنامه ساده تحت ويندوز موبايل 5 را خواهيد شناخت. براي اين منظور به نرم‌افزار ويژوال استوديوي 2005 مراجعه مي‌نماييم و سورس‌كد يك مثال را به طور دقيق بررسي و آن را كمي دستكاري خواهيم كرد. براي تأليف اين مقاله از اطلاعات سايت MSDN مايكروسافت استفاده كرده‌ام و سورس‌كد مورد بحث نيز از همين منبع استخراج شده است. اين سورس‌كد را مي‌توانيد از بخش دانلود سايت ماهنامه شبكه دريافت كنيد.


چارچوب برنامه‌نويسي در پلتفرم ويندوز موبايل‌

چنانكه مي‌دانيد، سيستم‌عامل CE براي تجهيز آن دسته از وسايل ديجيتالي كه از نوت‌بوك كوچك‌ترند (مانند كامپيوترهاي جيبي، دوربين‌هاي ديجيتالي، صفحات نمايش LCD، چاپگرها) و نيز وسايل بسيار كوچك (مانند ساعت مچي) به يك سيستم‌نرم‌افزار متمركز، طراحي و به بازار معرفي شده است.

سيستم‌عامل ويندوز موبايل زيرمجموعه خاصي از ويندوز ‌CE است و براي نصب روي گوشي‌هاي موبايل سازگار با اين سيستم و نيز آن دسته از Pocket PC‌ها و كامپيوترهاي جيبي طراحي شده است كه به تلفن همراه مجهزند.

ويندوز موبايل نيز دو نوع دارد: يكي براي كامپيوترهاي جيبي و ديگري براي تلفن‌هاي هوشمند (اسمارت‌فون). در نسخه 5 ويندوزموبايل هر يك از اين دو نوع فرعي به ترتيب Windows Mobile Pocket PC Phone Edition و Windows Mobile Smartphone Edition نام‌گذاري شده‌اند و در نسخه جديد آن (نسخه 6) كه به تازگي معرفي گرديده‌ است، به ترتيب Windows Mobile Standard Edition و Windows Mobile Professional Edition ناميده شده‌اند.

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

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



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

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

پلتفرم برنامه‌نويسي
ويندوز موبايل 5،6و6.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‌هاي مورد بحث را در اين دياگرام ملاحظه كنيد. مقايسه NET CF. و Native Code

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

هر يك از اين دو روش، مزايا و معايبي دارند. مزيت استفاده از دات‌نت فشرده، سهولت برنامه‌نويسي، امكان توليد سريع نرم‌افزار، اشكال‌زدايي آسان از برنامه، عدم نياز به مديريت مستقيم حافظه، سهولت برنامه‌سازي ويژوال، استفاده از متدولوژي شيءگرا، عدم نياز به دستكاري مستقيم رجيستري ويندوز و شباهت كدها به حال و هواي برنامه‌نويسي براي كامپيوترهاي معمولي دسكتاپ و سرور است.
[عکس: oky1t9z2k7ris08reiuh.gif]
شکل 2

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

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

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

توليد برنامه با اين روش زمان‌بر و خسته‌كننده است و برنامه‌نويس بايد شكيبايي پيشه كند. علاوه بر اين‌ها، كار با منطق شيءگرا در محيط كد بومي اصلاً به آساني محيط دات‌نت نيست و تنها با مدد گرفتن از فناوري مياني ‌MFC مي‌توان حال و هواي برنامه‌نويسي شيء‌گرا را به تجربه كار در محيط دات‌نت نزديك كرد. البته تا دو سال پيش برنامه‌نويسي با كد بومي حتي از اين هم سخت‌تر و مستلزم نصب و به‌كارگيري ابزار ++eMbedded Visual C بود.

مقايسه ويندوز موبايل 5 یا 6 یا 6.5 و ويندوز موبايل 2003
از ديدگاه برنامه‌نويسي
Windows Mobile 5.0
Windows Mobile 2003
Windows Mobile 6.0
Windows Mobile 6.5
رابط برنامه‌نويسي
Runs. no debug or deploy
Runs. no debug or deploy
EVC 3.0
Runs. no debug or deploy
Yes
EVC 4.0 application
Runs. no debug or deploy
Yes
VS 2003 + CF 1.0
Yes
Yes
VS 2003 + CF 1.0
Yes
Yes
VS 2003 + CF 2.0
جدول 2
به بيان ديگر، علاوه بر ويژوال استوديو بايد ابزار كمكي ديگري هم نصب مي‌كرديد. خوشبختانه از زمان معرفي Windows CE 5 و ويندوز موبايل متناظر آن برنامه‌نويسي در محيط كد بومي به مراتب آسان‌تر شده است؛ زيرا ويژوال استوديوي 2005 شما را از نصب و به‌كارگيري ++eMbedded Visual C يا برادرش eMbedded Visual Basicمعاف مي‌كند.

جدول 2 مقايسه‌اي ميان ويندوز موبايل 5 و ويندوز موبايل 2003 از ديدگاه برنامه‌نويسي است (CF و EVC به ترتيب معرف دات‌نت فشرده و ويژوال سي پلاس پلاس الحاقي هستند).

اين جدول نشان مي‌دهد كه هنگام مراجعه به هر يك از اين دو سيستم‌عامل، دسترسي به كدام‌ يك از مدل‌هاي برنامه‌نويسي امكان‌پذير، اختياري يا اجباري است.
البته آخرین نسخه ی ویندوز موبایل 6.5 بود که در مقاله بیشتر درباره ویندوز موبایل 5 نوشته شده!

منبع:جی اس ام
از امام هادی(ع) بشنوید/ مسخره کردن، تفریح چه کسانی است؟


1- اعتبار مردم در دنیا به مال آن هاست و در آخرت به اعمال آنها.
2- فروتنی در آن است که با مردم چنان کنی که دوست داری با تو چنان باشند .
3- نارضایتی پدر و مادر ، کم توانی را به دنبال دارد و آدمی را به ذلت می کشاند .
4- مسخره کردن تفریح آدم های بی خرد و کار جاهلان است.
5- اگر همه مردم مسیری را انتخاب کنند و در آن گام نهند ، من به راه کسی که تنها خدا را خالصانه می پرستد خواهم رفت .

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

بنابراين لازم بوده است از زباني نزديك به زبان ماشين استفاده شود تا برنامه‌ها با حداقل حجم و حداكثر كارايي و سرعت اجرا شوند. خالي از لطف نيست كه بدانيد حجم اغلب برنامه‌هايي كه با اين روش براي ويندوز موبايل توليد مي‌كنيد، به كوچكي ويروس‌هاي كامپيوتري هستند كه روي پي‌سي‌ها پرسه مي‌زنند! متأسفانه بار اصلي اين مدل برنامه‌نويسي به دوش سازنده نرم‌افزار است و راه گريزي وجود ندارد.
[عکس: s77_Windowsmobile_code01_s.gif]
کد 1
در اين مقاله مي‌كوشيم فضاي پيچيده برنامه‌نويسي ++C را كمي ساده‌ كنيم و با حال و هواي كدنويسي در اين محيط مأنوس شويم. براي اجراي مثالي كه در ادامه مقاله تشريح شده است، بايد از ابزار Visual C++ 2005 استفاده كنيد كه همراه ويژوال استوديوي 2005 نصب مي‌شود.

توصيه مي‌كنم براي محكم‌كاري، SDK ويندوز موبايل 5 را نيز دانلود و نصب كنيد تا مشكلي پيش نيايد. نزديك به هشتاد مثال برنامه‌نويسي با كد بومي ويندوز موبايل نيز در اين SDK موجود است. نصب دات‌نت 2 يا SQL Mobileدغدغه اين مقاله نيست.
[عکس: s77_Windowsmobile_code02_s.gif]
کد 2

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

معماري MFC در حقيقت براي كساني در نظر گرفته شده است كه مايلند از متدولوژي شيءگرا و مزاياي آن در ويندوز موبايل راحت‌تر استفاده كنند وATL نيز براي توليد كامپوننت‌ها يا استفاده از كامپوننت‌هاي پيش‌ساخته در نظر گرفته شده است.
[عکس: s77_Windowsmobile_code03_s.gif]
کد 3
صرف‌نظر از گرامر خاص زبان ++C، گفتمان اصلي حاكم بر اين زبان، مديريت حافظه است. هنگامي كه با اين زبان برنامه‌‌ مي‌نويسيد، پنجاه درصد كد شما چيزي نيست جز مديريت بيت‌ها و بايت‌ها در حافظه و تنها نيمي از سورس كد واقعاً به كار اصلي مد نظر شما اختصاص دارد. بنابراين در اغلب مواقع، علت كار نكردن يا درست كار نكردن برنامهِ شما اشتباهات سهوي برنامه‌نويسي در مديريت حافظه است، نه چيز ديگر.

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


1- اعتبار مردم در دنیا به مال آن هاست و در آخرت به اعمال آنها.
2- فروتنی در آن است که با مردم چنان کنی که دوست داری با تو چنان باشند .
3- نارضایتی پدر و مادر ، کم توانی را به دنبال دارد و آدمی را به ذلت می کشاند .
4- مسخره کردن تفریح آدم های بی خرد و کار جاهلان است.
5- اگر همه مردم مسیری را انتخاب کنند و در آن گام نهند ، من به راه کسی که تنها خدا را خالصانه می پرستد خواهم رفت .

 
پاسخ
  


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  درخواست راهنمایی : ساختن کتاب برای اندروید با basic4android saiedfsd 4 10,783 02-02-2018، 11:49 PM
آخرین ارسال: behinesaz
Exclamation مشکل در run کردن برنامه در basic4android barid 7 16,590 08-13-2017، 07:53 AM
آخرین ارسال: amir6776
  درخواست کتابخانه wifi direct برای basic4android masoud.pezeshkzade 1 8,206 12-20-2014، 01:03 AM
آخرین ارسال: Marc33
  دانلود نرم افزار فارسی سازنده برنامه های فارسی اندروید meisam1376 4 9,955 12-05-2014، 05:50 PM
آخرین ارسال: bah69man
  دانلود Basic4android v1.20 - نرم افزار توسعه و ساخت برنامه های کاربردی تحت آندروید Amin_Mansouri 11 21,495 10-10-2014، 09:24 PM
آخرین ارسال: Amin_Mansouri
Wink برنامه نویسی «در» آندروید Kei armin 5 9,608 08-14-2014، 08:23 PM
آخرین ارسال: sahandmax
  مشكل حرف "ي" در برنامه hamid1148 3 9,747 12-03-2013، 07:35 PM
آخرین ارسال: omid_student
  آموزش باز کردن Lock code موبایل نوکیا امیر 2 8,450 08-15-2012، 03:33 PM
آخرین ارسال: امیر
  برنامه نویسی J2me برای موبایل با دلفی Oep 10 18,362 04-13-2012، 11:04 PM
آخرین ارسال: Amin_Mansouri
  برنامه نویسی برای اندروید Amin_Mansouri 2 8,599 12-26-2011، 04:31 PM
آخرین ارسال: Amin_Mansouri

پرش به انجمن:


Browsing: