سؤال

هل من الممكن الحصول على قيمة العودة بخلاف مستوى الخطأ من .NET EXE؟ يجب استدعاء EXE من برنامج نصي أو دفعة أو Rexx.

إذا لم يكن الأمر كذلك، فهل يمكنك استدعاء طريقة في التجميع من الدفعة أو Rexx واسترجع قيمة الإرجاع؟

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

المحلول

نقطة الدخول (والخروج) نقطة من أي .net القابل للتنفيذ هو الطريقة الرئيسية, ، والتي يجب أن تكون طريقة ثابتة معلنة إما void أو int نوع العودة.

لهذا السبب، لا يمكنك إرجاع أي شيء آخر آخر غير int.

هذه int القيمة هي مستوى الخطأ (حسب الاتفاقية، 0 تعني ناجحة).

لا يزال بإمكانك في برنامجك بالكتابة إلى ملف "الحالة" الذي سيسمح لك بالكتابة ما تريد وقراءته منه.

نصائح أخرى

في سياق C / C ++، يعتمد ذلك على توقيع الأسلوب الرئيسي (). ولكن من الإلزامي أن العائد يجب أن يكون int. لذلك اقتراح أوديد يستحق المحاولة

الحل البديل المحتمل هو الحصول على طريقة .NET الخاصة بك طباعة سلسلة إلى stdout التي يتم إعادة توجيه cam إلى rxqueue.exe الذي يضع الإخراج في مكان يمكن أن تجد فيه REXX ذلك. ثم في غلاف Rexx الخاص بك، انتظر الإرجاع وعند الوصول إلى سحب من قائمة الانتظار.

'external.exe | rxqueue'
line. = ''
ndx = 0
do while queued() > 0
   ndx = ndx + 1    
   parse pull line.ndx
end 
line.0 = ndx  /* this is unnecessary but is a common practice to store the 
                 stem size in leaf 0 */

/* now deal with your results */
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top