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

عندي مشروع مكتوب بالسي و أريد تحويله الى ملف Dll

بدأه نسرين الطبال في 6 يناير 2010 · 5 رد · 825 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكنني تحويل مشروع مكتوب بالسي الى ملف DLL وهذا المشروع مكتوب بداخله عدة دالات مختلفة الأنواع

#2

سوف تضطرين الى اعادة كتابة الدالة main فقط و باقى الدوال كما هى. عليكى فقط البدء بمشروع Dll و اعادة ترجمته بعد اضافة الدوال اليه سواء عبر النقل copy&paste او ضم الملفات الى المشروع.

#3

لابد من مراعاة بعض الأمور و هى:

1 - استبدال الداله Main بالداله DllMain و جعلها تعود بـ TRUE او واحد و ذلك حتى يمكن تحميل الداله بإستخدام LoadLibrary او اى من الدوال المشابهه.

2 - تحديد الـ Calling Convention للدوال مثل __stdcall او __cdecl او __fastcall حسب طبيعة عمل الداله و حسب تصميم المكتبه.

3 - استخدام __declspec(dllexport) مع الدوال التى تريدى تصديرها خارج المكتبه او صنع ملف defination لوضع اسماء الدوال التى تريدى تصديرها به او استخدام كلاهما معا.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#4

يضاً , يجب الاخذ بالاعتبار ماهو نوع الـ DLL المطلوب , هناك الـ unmanaged DLL و ايضاً الـ Managed DLL ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#5

كما أنه يجب أن يكون نوع المشروع ككل ( ناتج المشروع ) ، معيّن على أساس أنه سينتج ملف DLL ( وهناك اعدادات أخرى على ما أذكر ) ،

صورة من Visual C++ 2008

post-42837-12628608067429_thumb.jpg

تم تعديل هذه المشاركة بواسطة الشمري في 7 يناير 2010 في 13:41

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#6

لقد قمت بانشاء ملف dll باستخدام ال dev-cpp و لكن عندما استدعيت هذه الدالة من الفيجوال بيسك حصل كراش للبرنامج

الدالة الموجودة في ملف dll كالتالي

char *encrypt (char *key;char *iv;char *plain;char *cipher)

و بصراحة انا لا اعرف ال call convention و سارفقلكم المشروع ربما يستطيع احد أن يوضح لي أكثر

و هذا هو المشروع

New Folder.rar

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

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

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

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

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