هل من الممكن الحصول على مشروع Delphi لإنشاء ملف LIB كإخراج للمشروع؟

StackOverflow https://stackoverflow.com/questions/2827649

  •  26-09-2019
  •  | 
  •  

سؤال

أريده أن يخلق DLL و LIB. لأن هذا DLL مرتبط بشكل ثابت مع CPP DLL آخر. لذلك يجب أن يكون لدي ملف lib.

أنا أستخدم IDE of Delphi 4

هل كانت مفيدة؟

المحلول

لا ، لا تقوم دلفي بإنشاء ملفات lib. ليس له فائدة لهم.

هناك طرق ل إنشاء ملف lib من DLL. على سبيل المثال ، يمكنك استخدام ضفيرة, ، إذا جاء مع نسختك من دلفي.

نصائح أخرى

من السهل جدًا استخدام DLLs في C ++ التي تم إنشاؤها في Delphi (كعكس بالعكس) ، لكنك تحتاج إلى اتباع قواعد بسيطة. أفترض أنك تحاول استخدام Delphi DLL في مشروع C ++:

  1. يجب عليك استخدام نفس اتفاقية الاتصال. بشكل افتراضي ، يستخدم Delphi اتفاقية التسجيل (__fastCall في مصطلحات C ++). اتفاقية الاتصال الافتراضية لجميع Windows DLLS هي __stdCall ، لذلك أولاً قم بتعديل إعلان الوظيفة في ملف مصدر Delphi الخاص بك على النحو التالي:

    وظيفة dosomething (x ، y: integer): integer ؛ stdcall;

  2. عند استخدام __stdCall ، تتوقع C ++ وظائف مصدرة في DLL أن تحتوي على الأسماء التي تليها postfix التي تعتبر الحجم الكلي للمعلمات التي تم تمريرها إليها. وبالتالي ، يجب أن يصبح روتينك في شيء@8 ، مع الأخذ في الاعتبار أن حجم عدد صحيح هو 4 بايت وأن قسم الصادرات الخاص بك في ملف .DPR يجب أن يبدو:

    صادرات
    قم بعمل ما اسم 'dosomething@8'

  3. قم بإنشاء رأس C ++ مع إعلان الوظيفة وإدراجه في مشروع C ++ الخاص بك:

    int __Declspec(Dllimport) __stdcall قم بعمل ما(int x ، int ذ) ؛

  4. إذا كنت تستخدم C ++ Builder أو Visual C ++ ، فاستخدم فائدة Implib التي تنشئ مكتبة الاستيراد (.lib). هناك أيضًا أداة LIB قادمة مع VC ++ والتي يمكن أن تفعل الشيء نفسه. ثم ارتباط ملف .lib بدلاً من .dll.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top