• 0
omaravet

البرنامج الأول في السمبيان helloworld

سؤال

السلام عليكم و رحمة الله و بركاته

هذا الموضوع عن كتابة أول برنامج لنا للعمل على بيئة السمبيان helloworld

يجب أن يتوفر لديك كما ذكر سابقا الsdk و سنقوم بالعمل على سلسلة s60 2nd edition

لتحميل الأدوات المطلوبة قم بالرجوع للموضوع السابق

الأدوات المطلوبة لبرمجة السمبيان

نبدأ بسم الله

نقوم بفتح النوت باد (notepad) لن نستخدم أي ide لأن التركيز على أساسيات الكود و ليس استخدام ستوديو أو أدوات

في البداية سنحتاج لعمل تضمين للملفات و الربط بالمكتبات التي سنحتاجها من بيئة السمبيان كما قلنا أهم مكتبة لا غنى عنها هي euser لذلك سنحتاج لربط مكتبة euser.lib و سيأتي كيفية الربط فيما بعد و بالنسبة لملفات الهيدر

سنحتاج لكتابة السطرين التاليين

#include <e32base.h>
#include <e32cons.h >

الملف الأول e32base.h نحتاجه غالبا لأن به تعريف الكلاس CBase و هو الكلاس الأب في بيئة السمبيان التي ترث منه بقية العناصر و يحتوي على الوظائف الأساسية لإنشاء و حذف العنصر من الذاكرة و هذا شرح الكلاس في موقع سمبيان الذي يوازي الmsdn في ميكروسوفت

http://www.symbian.com/developer/techlib/v...CBaseClass.html

أما الملف الثاني e32cons.h فيحتوي على تعريف الكلاس CConsoleBase المسئول عن التعامل مع واجهة تشبه واجهة الدوس و التي من خلالها سنقوم بكتابة helloworld

الكود بسيط و هو ملف واحد سنسميه مثلا hello.cpp و نعضه في ملجد c:\hello

و الكود كالتالي

#include <e32base.h>
#include <e32cons.h>
GLDEF_C TInt E32Main()
{
CConsoleBase* console=Console::NewL(_L("hello"),TSize(KConsFullScreen,KConsFullScreen));
console->Printf(_L("hello world\n"));
console->Printf(_L("press any key"));
console->Getch(); // get and ignore character
delete console;
return 0;
}

سنلاحظ أن entry point هنا هي الدالة E32Main و معرفة ب GLDEF_C و هي ماكرو يعتبر عن global defination

مثل public static في السي

ثم استخدمنا الكلاس CConsoleBase لإظهار شاشة مثل شاشة الدوس و كتابة hello world

ثم انتظار أية ضغطة على لوحة المفاتيح

الخطوة الثانية نحتاج لتضمين مكتبة EUSER

ليس لدينا هنا ملف يمثل المشروع و لكن سنقوم بإنشاء ملف بامتداد mmp سنحدد فيه بيئة و ملفات و مكتاب المشروع الذي سيتم بناؤه

و هذا الرابط يشرح طريقة كتابة ملف mmp

http://www.symbian.com/developer/techlib/v...-ref/index.html

و هذه صيغة الملف الخاصة ببرنامجنا

TARGET		hello.exe
TARGETTYPE exe
UID 0

SOURCEPATH .
SOURCE hello.cpp

USERINCLUDE .

SYSTEMINCLUDE \epoc32\include

LIBRARY euser.lib

في هذا الملف السطر الأول به TARGET hello.exeأي الملف الناتج عن بناء المشروع سيكون اسمه hello.exe

السطر الثاني TARGETTYPE exe نوع الملف exe

السطر الثالث UID 0 هو رقم متفرد يتم إعطاءه لكل برنامج لكننا هذه المرة سنجعله صفر

السطر الرابع SOURCEPATH . مكان ملفات cpp و هي هنا في نفس المجلد

السطر الخامس SOURCE hello.cpp ملف cpp الخاص بالمشروع و يمكن تكرار هذا السطر مع كل ملف cpp ضمن البرنامج

السطر السادس USERINCLUDE . مكان الملفات الهيدر الخاصة بالمستخدم و هي هنا في نفس المجلد و لكننا لا نستخدم ملفات هيدر هذه المرة فعند استخدام ملف هيدر و لكننا حين نكتب مثلا

#include "header.h"

فإنه يبحث عنه في هذا المجلد

السطر السابع SYSTEMINCLUDE \epoc32\include و يحدد مسار ملفات الهيدر الخاصة بالsdk مثل ملف e32base.h

السطر الثامن LIBRARY euser.lib يحدد المكتبات التي نحتجها و هي هنا euser.lib

آخر شيئ قبل بناء البرنامج هو كتابة ملف bld.inf و به بيانات عن طريقة بناء المشروع لكننا لن نكتب غير أمر واحد يحدد ملف mmp الخاص بالمشروع

PRJ_MMPFILES

hello.mmp

و هذا الرابط يشرح أوامر ملف bld.inf

http://www.symbian.com/developer/techlib/v...-ref/index.html

نأتي الآن لعملية بناء البرنامج

قم بفتح موجه الدوس start ->run

قم بكتاب cmd

في الشاشة السوداء غير المجلد الحالي إلى المجلد الذي به ملفات المشروع

cd c:\hello

قم بكتابة الأمر التالي

bldmake bldfiles

سيقوم بعمل ملف ABLD.BAT الذي سنستخدمه في الخطوة التالية

قم بكتابة الأمر التالي

abld build armi urel

هذا الأمر سيقوم ببناء البرنامج بصيغة armi التي تناسب الجوال و نوعه urel أي unicode release

لبناء الملف ليعمل على emulator يجب وجود أحد برامج الكومبايل الخاصة بالسي على الويندوز مثل فيجوال ستوديو مثلا

قم بكتاب الأمر التالي

code]abld build wins udeb

أي عمل exe نوعه unicode debug اعتمادا على الكومبايلر الخاص بالفيجوال ستوديو

إن ظهر خطأ أنه لا يجد ملف link.exe

ستجده في مجلد الفيجوال ستوديو أضف مساره لمسارات النظام أو قم بتشغيل ملف vcvars32.bat في حالة فيجوال ستوديو 2003 لوضع المسارات للنظام ستجده فيه

C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin

بعد الانتهاء ستجد بنامج hello.exe في المسار التالي \Epoc32\release\wins\udeb داخل مجلد الsdk قم بتشغيله

سيفتح الemulator و ترى كلمة hello world press any key

كما في الصورة التالية

Hello%20World_S60.gif

مبارك عليكم البرنامج الأول

المصادر

http://sw.nokia.com/id/6503ec22-9dfd-4906-...ted_v1_0_en.pdf

http://newlc.com/mot.php3?id_mot=43

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

السلام عليكم

شكرا أخي على مشاركاتك القيمة,

لدي إستفسار وهو: سمعت أنه من الممكن إستعمال الفيزوال ستوديو كIDE للبرمجة بلغة السيمبيان. ولكن إثر تنصيبSDK الخاصة بالمجموعة 60 لنوكيا صرت غير قادر على إنشاء أي مشروع جديد من نوع Console Applicationلحواسيب الكف.

فهل لك فكرة على الموضوع؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالنسبة لاستخدام الفيجوال ستوديو

بعد أمر bldmake bldfiles

قم بكتابة أمر

abld makefile vc6

سيقوم بعمل ملفات بروجكت dsp dsw لتعمل مع الفيجوال سي

و هناك sdk مخصصة لتناسب الفيجوال ستوديو مثل

Series 60 2nd Edition SDK for Symbian OS, Supporting Feature Pack 2, For C++

http://www.forum.nokia.com/info/sw.nokia.c...dk_msb.zip.html

حيث يقوم بإضافة ويزارد في لفيجوال ستوديو عند عمل بروجكت جديد تختار نوعه symbian

و هذا لن يوفر بيئة رسومية لعمل مشاريع السمبيان

إنما ستقوم بكتابة الكود و الكومبايل عن طريق الفيجوال ستوديو لا أكثر

أما بالنسبة للمشكلة الثانية فتحتاج مزيد من الإيضاح

هل هناك إرور و ما هو

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .