هل من الممكن الحصول على مشروع Delphi لإنشاء ملف LIB كإخراج للمشروع؟
-
26-09-2019 - |
سؤال
أريده أن يخلق DLL و LIB. لأن هذا DLL مرتبط بشكل ثابت مع CPP DLL آخر. لذلك يجب أن يكون لدي ملف lib.
أنا أستخدم IDE of Delphi 4
المحلول
لا ، لا تقوم دلفي بإنشاء ملفات lib. ليس له فائدة لهم.
هناك طرق ل إنشاء ملف lib من DLL. على سبيل المثال ، يمكنك استخدام ضفيرة, ، إذا جاء مع نسختك من دلفي.
نصائح أخرى
من السهل جدًا استخدام DLLs في C ++ التي تم إنشاؤها في Delphi (كعكس بالعكس) ، لكنك تحتاج إلى اتباع قواعد بسيطة. أفترض أنك تحاول استخدام Delphi DLL في مشروع C ++:
يجب عليك استخدام نفس اتفاقية الاتصال. بشكل افتراضي ، يستخدم Delphi اتفاقية التسجيل (__fastCall في مصطلحات C ++). اتفاقية الاتصال الافتراضية لجميع Windows DLLS هي __stdCall ، لذلك أولاً قم بتعديل إعلان الوظيفة في ملف مصدر Delphi الخاص بك على النحو التالي:
وظيفة dosomething (x ، y: integer): integer ؛ stdcall;
عند استخدام __stdCall ، تتوقع C ++ وظائف مصدرة في DLL أن تحتوي على الأسماء التي تليها postfix التي تعتبر الحجم الكلي للمعلمات التي تم تمريرها إليها. وبالتالي ، يجب أن يصبح روتينك في شيء@8 ، مع الأخذ في الاعتبار أن حجم عدد صحيح هو 4 بايت وأن قسم الصادرات الخاص بك في ملف .DPR يجب أن يبدو:
صادرات
قم بعمل ما اسم 'dosomething@8'قم بإنشاء رأس C ++ مع إعلان الوظيفة وإدراجه في مشروع C ++ الخاص بك:
int __Declspec(Dllimport) __stdcall قم بعمل ما(int x ، int ذ) ؛
إذا كنت تستخدم C ++ Builder أو Visual C ++ ، فاستخدم فائدة Implib التي تنشئ مكتبة الاستيراد (.lib). هناك أيضًا أداة LIB قادمة مع VC ++ والتي يمكن أن تفعل الشيء نفسه. ثم ارتباط ملف .lib بدلاً من .dll.