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

سؤال عن مكتبة السي

مغلق
بدأه السهم الناري في 28 أبريل 2003 · 8 رد · 940 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذا سؤال سألته أكثر من مرة في أكثر من منتدى ولم يجبني أحد فهل أجد الاجابة عليه عندكم أيع الاخوان والاخوات؟

السؤال هو :

كيف أقوم بفتح مكتبة لغة السي ومعرفة كيفية بناء الدوال الموجوده بها ...

توضيح للسؤال :

المقصود هناك دوال مثلا string جاهزة يقوم المستخدم بإستعمالها دون معرفة كيف بنيتها و أنا أبحث عن المكتبة التي بها هذه الدوال وغبرها من الدوال...

أرجوا الاجابة بالتفصيل حتى يتسنى للجميع الفائدة وتقبلوا خالص شكري....

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#3

search in Filemanager with string.h or math.h and you see the file

اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#4

شكرا على كل من ردي علي :

أما أخي من حلب فأقول أن شاء الله أني متأكد أنه يمكنك الاطلاع عليها واذا عرفت يأرد عليك بإذن الله ... ولكن من يعرف لايبخل علي بذلك...

أما أخي من ألمنايا أشكرك على تفاعلك و أرجوا أن تعتز بلغتك وترد علينا بذلك وقد فهمتني خطأ أنا لا أسل كيف استدعي دالة من مكتبة ما مثل مكتبة النصوص string او مكتبة العمليات الحسابية math و إنما المراد طريقة بناء هذه الدوال الجاهزة كيف يمكن أن شاهد ذلك لها طريقة فهل فهمت الفكرة ....

مع تمنياتي للجميع بالتوفيق........

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#5

أخي السهم هذه التوابع تكون معرفة في ملفات lib وعندما تقوم بعمل انكلود لملف هيدر فانه بدوره يقوم بعمل استيراد او import لملف ال lib الموجود فيه التعريف لهذه الدوال

مثلا لو فتحت ملف istream.h او ملف ctype.h او اي هيدر فستجد به سطرا مثل هذا

#define _CRTIMP __declspec(dllimport)

اي انه يقوم بعمل امبورت لملف lib وعلى ما أظن انه LIBCD.LIB و LIBCMTD.LIB

ولو تأملت مثلا كيفية استخدام توابع ال API في الويندوز فستجد أنك تعمل انكلود لملف windows.h الذي بدوره يقوم بعملية استدعاء لهذه التوابع من المكتبات القياسية مثل advapi32.lib و kernel32.lib ... الخ

جرب فتح ملف winbase.h ستجد بداخله فقط ال prototype لكثير من توابع ال API ولكن تبقى طريقة عمل هذه التوابع في ملفات ال lib مخفية عن المستخدم

#6

حبيت أضيف على الموضوع ، يمكنك الإطلاع على التوابع المعرفة في مكتبة معينة باستخدام برنامج dumpbin ويأتي مع حزمة الفيجوال سي

فقط أكتب

dumpbin -exports file.dll

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

#7

إضافة الى ما قاله الاخوة...

أخي السهم الناري, ما هو موجود في ملف ال .h ما هو الا تعريفات للدوال والثوابت, والمتغيرات , أما اسلوب عمل الدوال فلن تمكنك الشركة المنتجة من الاطلاع على الكود, وهو يكون في ملفات في مكتبة lib وهذه الملفات مرّت في عملية الترجمة اي انها عبارة عن كود بيناري, (لغة آلة) لا يمكنك الاستدلال طريقة عملها, وهذا جزء من خصوصيّة الشركة المنتجة..

أما بخصوص انك قادر على الاطلاع على فحوى هذه المكاتب, فربما لك طرقك الخاصة لكن بالطرق القانونية العلميّة هذه الملفات غير متاحة للجميع, أي أنها ليست مفتوحة المصدر...

هذا والله أعلم.

#8

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

أما بعد...

أشكر كل من تفضل بلاجابة فنحن لم نجتمع الا لكي نستفيد من بعض .

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

أما بالنسبة لأخي الكريم إسماعيل أنا كنت أضن أنه من الممكن رأيت طريقة عمل هذه الدوال ولكن معلومتك التي اشكرك عليها صححت لي المفهوم أي لا يوجد بهذه المكاتب الا التريفات والثوابت ومالفائدة إذا علمونا طريقة تكوينها .

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

أسأل الله عز وجل أن يزيدكم علماً وأخلاصاً لخدمة أمتنا الاسلامية ...

وشكراً..

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#9

السلام عليكم

أخي السهم الناري أحييك أولا على طموحك ،

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

الطريقة التي ذكرتها تمكنك من عرض اسماء التوابع التي تصدرها مكتبة معينة اي التوابع المعرفة داخلها (أسماؤها فقط )

ويوجد الكثير من البرامج التي تقوم بنفس العمل مثل PE Explorer وغيره ، ولكن في النهاية هذه الطرق لا تمكنك من الإطلاع على الكود المصدر للمكتبة

هذا الموضوع مغلق.

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