الحصول على BPL الإصدارات في البرنامج عند بدء التشغيل

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

  •  01-07-2019
  •  | 
  •  

سؤال

هل من الممكن أن تحقق ما هو إصدار BPL (أي Rtl70.BPL, Indy70.bpl الخ) يتم تثبيتها على كمبيوتر عملاء البرنامج عندما يبدأ ؟

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

دلفي 7, إذا كان ذلك يحدث فرقا


مجرد متابعة الموضوع.
على rtl70.ملف bpl فقط مختلفة قليلا بين بناء جهاز الكمبيوتر الخاص بك العملاء.

عملاء جهاز الكمبيوتر:7.0.4.453 760 KB (778,240 بايت) الثلاثاء, 20 آب / أغسطس 2002, 4:40:26 PM
بناء جهاز الكمبيوتر:7.0.4.453 760 KB (778,240 بايت) الجمعة 9 آب / أغسطس 2002 11:30:00 PM

التحديث كنت تستخدم تجاهل لهم كما يجري نفس (لا تغيير في بناء عدد) ، ولكن عندما يدويا حذف و نسخ الملفات كل شيء يبدو على العمل.

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

المحلول

للأسف لا.إذا كان الحادث هو بسبب فقدان الواردات من الاتحاد .bpl الملفات المطلوبة من قبل التطبيق الخاص بك, لا توجد وسيلة (قصيرة من كتابة دلفي RTL رابط أنفسهم) للتحقق من تلك الحزم من داخل تحطمها للتنفيذ نفسها.PatrickvL الحل هو على الأرجح أفضل من أجل الوضع الخاص بك.

Neftalí الحل قد يكون خيارا - بالطبع في تكلفة التعبئة والتغليف RTL, تكرار الكثير من الملفات و فقدان واحدة من النقاط من وجود حزم في المقام الأول.ومع ذلك ، إذا كنت تستخدم DLLs الخاصة (أي إذا قمت بنسخ ملفات Dll الخاص بك الثنائيات الدليل) ثم يجب عليك أيضا إنشاء ملف فارغ بنفس الاسم مثل الملف القابل للتنفيذ ولكن إلحاق التمديد .المحلية إلى ذلك, أيبالنسبة notepad.exe كنت إنشاء المفكرة.exe.المحلية.انظر ريمون تشن المادة على توجيه DLL للحصول على مزيد من التفاصيل.

نصائح أخرى

إذا تعطل برنامج, ربما لأنه لا يمكن تحميل المكتبة انها مرتبطة بشكل حيوي مع.(كما كنت حيث يقول ، وهذا يحدث عندما يكون النظام لا يمكن العثور على نسخة من حاجة libaries في أي مكان في مسار البحث).

المشكلة هي أن هذا يحدث عند بدء التشغيل من تطبيق Windows OS لا عن طريق API يسمى MapAndLoad (اقرأ أيضا هذا).يتم استدعاء API هذا قبل التطبيق الخاص بك حتى بدأت, لذلك لا أرى أي طريقة لمنع هذا.

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

هل من الممكن أن تحقق ما هو إصدار BPL (أي Rtl70.BPL, Indy70.bpl الخ) يتم تثبيتها >على عملاء جهاز الكمبيوتر عندما يكون البرنامج يبدأ ؟ لدي بعض البرامج تحطم لأن BPL على الكمبيوتر مختلفة منها >على بناء آلة.إذا لا بد لي من إضافة كل BPL المستخدمة في المثبت على كل تحديث ، وأعتقد أنه سوف الهزيمة >واحدة من النقاط على استخدامها.

يجب تثبيت نسخة (تطوير) من BPL هو (RTL70.bpl, إندي.BPL,...) في نفس الدليل الذي قمت بتثبيت التطبيق.التطبيق الخاص بك البحث أولا BPL في نفس الدليل و بعد البحث في الدلائل داخل المسار.فإن النقطة السلبية هي أن النظام الخاص بك يمكن أن يكون لها عدة نسخ من نفس BPL, نقطة إيجابية هو أنه سوف لا يكون لديك مشاكل مع مختلف إصدارات من نفس الملف.

التحيات.

P. D:المعذرة لغتي الإنجليزية سيئة.

لا يمكنك فعل ذلك من قابل للتنفيذ أن يستخدم هذه bpls ، ولكن هل يمكن أن يكون صغير بدء التشغيل-البرنامج الذي يتحقق bpls ثم يدعو الرئيسية للتنفيذ.

في بعض الأحيان دلفي يضيف التلقائي شكل الخط:
{$R *.الدقة'}
إلى ملفات المشروع أو حزم.

التعليق (//) أن خط تجميع مرة أخرى.

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