سؤال

لدي com interop c ++ dll يتم تحميله في c ++ من خلال ملف .tlb الذي تم إنشاؤه في c#. عندما أقوم بتشغيل جهاز الكمبيوتر الخاص بي ، فإنه يعمل بشكل جيد ولكن عندما أقوم بتشغيل جهاز كمبيوتر تم تصنيفه للتو ، فإنه يعطي:

WindowsError: exception code 0xe0434f4d

هل يجب علي فعل شيء لملف .tlb أو DLL لتسجيله في النظام؟ شيء بخصوص regasm.exe؟

إذا كان الأمر كذلك ، فمن الممكن فقط تنزيل regasm.exe واستخدامه؟

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

المحلول

آسف ، أنت على بعد مليون ميل من تشخيص هذا بشكل صحيح. المكتبات النوع مخصصة للمترجمين ، فهي ليست مطلوبة (عادة) في وقت التشغيل.

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

هناك طريقتان أساسيتان لمعالجة هذا. تتمثل نهج الأسئلة والأجوبة في استخدام محول الأخطاء إلى الوضع المدار وجعله يتوقف على استثناء مُدار غير معتمد. Debug + استثناء ، خانة الاختيار ، على سبيل المثال. أو يمكنك إضافة بعض التشخيصات إلى الطريقة نفسها ، وتسجيل الخطأ في كتلة الصيد على سبيل المثال.

ابدأ بـ Q&D ، إنه دائمًا ما يكون شيئًا سخيفًا ، مثل FileNotfound.

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