الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف انشا مكتباتي الخاصة

بدأه aziz nor في 22 يونيو 2008 · 9 رد · 1,101 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم والصلاة والسلام علي اشرف المرسلين اما بعد

اريد ان اطرح بعض الاسئلة فيما يخص انشاء مكتبة خاصة تحتوي علي دوال وامور تساعدني في برمجة تطبيقاتي الخاصة

اولا كيف استطيع ان انشا مكتبتي الخاصة

ثانيا هل نوع المترجم يحدد نوعية مكتبتي يعني هل ستكون مكتبتي مستقلة غير مرتبطة بنوع المترجم ام لا

ثالثا اذا وجدت مكتبات غير موجودة في كترجمي واردت ان اضيفها كيف يمكنني فعل ذالك

وشكرا

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#2

خليك قنوع يا عزيزي وارضى بال Qt ليش تبغالك مكتبة خاصة اكيد عندك موضوع خطير جدا :cash:

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#3

بسم الله الرحمن الرحيم والصلاة والسلام علي اشرف المرسلين اما بعد

هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه

ههههههههههه

شكرا لك يالاخ المصفوفة علي خفة الدم

والحقيقة والله ماهي حكاية فلوس لكن لو جات الفلوس في الطريق

هل نقول لا

هل نقول للخير لانريدك

ههههههههههههههههههههههههههههههههههههههههههههههههههههههههه

وان شاء الله لو كان فيه فلوس ساخبرك لنتقاسم الغنيمة

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#4

بسم الله الرحمن الرحيم

اخي العزيز " عزيز"

انشاء المكتبات في c++ سهل جدا

فقط انشئ ملف header يعني بامتداد .h واكتب فيه دوال المكتبة وفئاتها وضمنها في برامجك

وان كنت تريد انشاء مكتبة كبيرة تستطيع انشاء عدة ملفات headers وربطها مع بعضها البعض

من ناحية المترجمات:

الـc++ من الاساس لها معايير يجب تطبيقها على كل المترجمات

لذلك اي برنامج مكتوب بلغة الـ c++ من الطبيعي ان ينطبق على كل المترجمات

ولكن :

تجنب استخدام الاضافات لبعض المترجمات لانها ستنطبق فقط على ذلك المترجم

استخدم الاسلوب القياسي لـC++

مثال

#include <iostream.h>
void sayhelo()
{
cout<< "hello";
}

لا يجب عليك استخدام هذا الاسلوب بل

#include <iostream>
using namespace std;
void sayhello()
{
cout<< "hello";
}

لاحظ تضمين المكتبة واستخدام مجال الاسماء

بقي استدعاءات دوال النظام

من الطبيعي ان مكتبة تستخدم دوال Windows API لاتستطيع ترجمتها على مترجم يعمل على الـLinux

ارجوا ان يكون الشرح واضح

#5

هل تقصد انشاء مكتبة استاتيكية .lib ؟؟ أم ملفات header فقط ؟؟

تم تعديل هذه المشاركة بواسطة GamingMasteR في 5 يوليو 2008 في 04:53

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#6

بسم الله الرحمن الرحيم والصلاة والسلام علي اشرف المرسلين اما بعد

اود ان اشكر كل الاخوة الدين قدموا مساعدتهم لي

ووالله العضيم كلما اطرح سؤال هنا في المنتدي و برغم من انه قد يكون سؤال واحد فقط الا اني اخرج بعدة

فوائد وحللول لامور كانت غامضة عندي

ومن خلال الاخوة وخاصة المشاركة الاخيرة

استنتجت بان هنالك مايسمي بملفات الهيدر واغلبنا يعرفها ويتعامل معها

وكدالك المكتبات

lib

وانا كنت من خلال طرحي احاول البحث عن الامرين لكن لم اكن اعتقد بانهما شيئان مختلفان برغم من معرفتي القليلة جدا لهما

يعني

header / library

فمن خلال هده المشاركة ارجوا ان تعطوني المعني الصحيح لكل منهما

وكيفية انشاء كل منهما كدالك

ولكي تكون اسئلتي دقيقة انا احاول صنع مكتبات مثل

qt /gtk

يعني هدا هدفي اريد عمل مكتبات ولو بسيطة ومشاركتها بالمنتديات العربية لكي تعم الفائدة

و نتحرر من تبعية الغرب حتي في البرمجة لنصنع اعمالنا بانفسنا وننافس بها

وشكرا

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#7

سؤال و الله مهم!

#8

انت تقصد تصمم toolkit زى Qt او GTK+ مثلا ؟

لو على كدا تقدر تعمل فورك لأى منهم حسب مزاجك من غير ماتبدأ من الصفر

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#9

بسم الله الرحمن الرحيم

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

تدلنا عليهم وبارك الله فيك

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#10

السلام عليكم .

في ملفات الـexe العادية تتم عملية الترجمة في الأول وينتج ملف الـObject والذي يحتوي على الكود بالـbinary بعد ذلك تتم عملية الربط linking وذلك بغرض اخراج الملف بالصورة المطلوبة (exe-sys-dll) وربطه مع المكتبات التي يحتاجها .

الفكرة لانشاء مكتبة استاتيكية lib هي كالتالي :

1- قم بترجمة الكود لاخراج ملف الـObject (من النوع coff او omf ستجده بامتداد .obj) وذلك عن طريق cl.exe من سطر الاوامر كما اعتدنا .

2- قم بانشاء ملف الـlib عن طريق lib.exe عن طريق الامر التالي : lib.exe xxxxx.obj حيث xxxxxx هو اسم ملف الـObj .

لا تنسى تصدير الدوال والمتغيرات التي تريد استعمالها عبر المكتبة .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…