سؤال

حسنًا ، لدي مشروعان للعبة. واحد هو الخادم والآخر هو العميل. أحتفظ بالوحدات المشتركة في مجلد مشترك أستخدمه لتضمينه في مشروع العميل/الخادم الخاص بي. ومع ذلك ، هناك مشكلة: لدي ملف مشترك يحتاج إلى ملف مختلف للعميل / الخادم. مثال: يحتاج MySharedLib إلى الطباعة إلى وحدة التحكم ، ولكن وحدة التحكم العميل/الخادم مختلفة. ما هي خياراتي؟ شكرًا

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

المحلول

في ملفك المشترك يمكنك استخدامه حدد التوجيه المترجم

فمثلا

{$IFDEF MYSERVER}
    Writeln('Server');  // this code executes
{$ELSE}
    Writeln('Client');  // this code does not execute
{$ENDIF}

ثم في مشروع الخادم الخاص بك ، يحدد تعريف myServer وفي العميل الخاص بك ، يحدد myClient ، ثم عندما يفصل الرمز المشترك باستخدام عبارة {$ IFDEF).

من تعليمات دلفي على التعاريف الشرطية:

تسمح لك التوجيهات الشرطية $ IFDEF ، $ IFNDEF ، $ if ، $ elseif ، $ else ، $ endif ، و $ ifend بتجميع أو قمع الرمز بناءً على حالة الرمز الشرطي. $ إذا سمحت لك $ elseif بإعداد التجميع الشرطي على معرفات Delphi المعلنة. يقوم $ IFOPT بتجميع أو قمع التعليمات البرمجية اعتمادًا على ما إذا كان يتم تمكين مفتاح التحويل البرمجي المحدد.

ومع ذلك ، لن يعمل هذا إذا كان الرمز المشترك في DLL أو أي نوع آخر من الموارد المشتركة الممتازة مثل الحزمة.

من تعليمات دلفي على التعاريف الشرطية:

يتم تقييم التعريفات الشرطية فقط عند إعادة تنسيق رمز المصدر. إذا قمت بتغيير حالة الرمز الشرطي ثم إعادة بناء المشروع ، فقد لا يتم إعادة ترجمة رمز المصدر في الوحدات غير المتغيرة. استخدم المشروع | بناء جميع المشاريع لضمان أن كل شيء في مشروعك يعكس الوضع الحالي للرموز الشرطية.

نصائح أخرى

إذا كانت مختلفة ، فهي لم تعد عبارة عن ملف مشترك بعد الآن.

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