السلام عليكم و رحمة الله و بركاته
هذا الموضوع عن كتابة أول برنامج لنا للعمل على بيئة السمبيان 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
كما في الصورة التالية

مبارك عليكم البرنامج الأول
المصادر
http://sw.nokia.com/id/6503ec22-9dfd-4906-...ted_v1_0_en.pdf