سؤال

أنا أعمل لدى خبير دلفي IDE، الآن لتجنب مشاكل التبعيات، كنت أفكر في إعادة بناء هذا الخبير كخبير dll كما تم اقتراحه في أحد هؤلاء إجابات, ، الآن يمكن لخبيرتي (المترجمة كـ bpl) الوصول إلى ملف Screen و Application المتغيرات العالمية (مثيلات Delphi IDE)، لذلك كنت أتساءل عما إذا كنت أقوم بتجميع الخبير الخاص بي كملف dll، فلا يزال بإمكاني الوصول إلى هذه المتغيرات وأريد أيضًا أن أعرف which are the main differences between a bpl delphi expert and a dll delphi expert?

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

المحلول

هل يجب أن أقوم بتجميع المعالج الخاص بي كملف DLL أو حزمة؟ من الأسهل تحميل الحزم وتفريغها دون إعادة تشغيل IDE (وبالتالي أسهل تصحيحها) ، لكن يمكنها إنشاء تعارضات تسمية في وحدة IDE.تحدث النزاعات عندما يتطابق اسم وحدة المعالج مع اسم الوحدة في حزمة أخرى تصميم محملة.في هذه الحالة ، لا يمكن تحميل كلتا الحزمتين في نفس الوقت.الحل الموصى به هو بادئة جميع أسماء وحدتك ببادئة "فريدة".يستخدم Gexperts ، على سبيل المثال ، "GX_" كبادئة الاسم لوحداتها.

من هذا مصدر جيد جدًا حول OTA:خبراء

نصائح أخرى

عند الوصول إلى متغير عام، ستكون هذه متغيرات عامة تكون عمومية لملف DLL الخاص بك، وليست عمومية لملف BDS.exe الرئيسي.لست متأكدًا ولكن أعتقد أن ملف DLL الخاص بك سيكون له متغير عام خاص به للشاشة والتطبيق، إذا قمت بالربط في النماذج وجوهر VCL.

يتم الوصول إلى تلك الأشياء التي تنتمي إلى IDE نفسه من خلال Open Tools Api (OTA).أعتقد أنك لا تشارك عادةً أي كائنات بين IDE الخبير الخاص بك على أي حال، وإذا حاولت القيام بذلك، فسيكون ذلك مشكلة.أي شيء تفعله يتجاوز OTA سيكون عرضة للاختراق بطرق غريبة، خاصة في الإصدارات المستقبلية من IDE.

تعد مشاكل التبعية بالطبع سببًا كبيرًا لعدم استخدام الحزم المستندة إلى BPL، ولكن أعتقد أن السبب الأكبر هو الحفاظ على الفصل الكامل بين الأجزاء الداخلية لأداتك والأجزاء الداخلية لـ IDE.

تذكر أن هدف DLL، مثل الهدف القابل للتنفيذ، مرتبط بشكل ثابت.وهذا هو جوهر الفرق.إذا كان الخبير الخاص بك يوفر وظيفة تستخدم واجهات OTA القانونية العامة والموثقة فقط، فيجب أن يكون الانتقال إلى DLL خاليًا من المشاكل.إذا كنت تستخدم بعض الحيل الخلفية الممكنة مع BPLs، فلا يمكنني أن أنصحك أكثر.

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