سؤال

قمت بتشغيل برنامجي في Debugmode ثم قم بإنهاءه عن طريق إغلاق النموذج الرئيسي.

في نافذة الإخراج، يمكنني رؤية الرسالة التالية:

giveacodicetagpre.

أتساءل ماذا يعني "Uninit: حيا 1".

هل يعرف أي شخص ؟؟ أنا دائما خائف حقا من شيء غير متوقع في وقت ما، ولا يبدو أن الرسالة "لا تزال على قيد الحياة" تبدو حقا واعدت لي.

شكرا على المساعدة!

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

المحلول

إنها رسالة تشخيصية تم إنشاؤها باستخدام OutputDebugString () . إنه موجود في أحد DLLs الذي لديك تبعية عليه. المعنى الدقيق يتطلب ترجمة تفسيرية، ولكن "Uninit" قصيرة عن "غير مهيأة"، وهو نوع الشيء الذي يحدث عند تفريغ DLL. وربما تعني "لا تزال حية 1" أن مبرمج DLL قد أدرك عنك لا يغلق مكونه بشكل صحيح قبل رمي حصيرة الأرضية.

الرسالة مفقودة استراحة خط ("\ n")، خطأ قياسي جدا أن يقوم المبرمجون بعملهم عند استخدام الإخراج DebugString.

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

أكثر موثوقية يستخدم مستكشف عملية SYSINTERNALS. حدد العملية الخاصة بك واضغط CTRL + D لسرد DLLs الذي تم تحميله. بالنظر إلى جودة الرسالة، فربما تخطي تلك التي تحتوي على حقوق نشر Microsoft. انقر بزر الماوس الأيمن فوق DLLs One-by-One وإلقاء نظرة على علامة التبويب "السلاسل" لرؤية السلاسل داخل DLL. بمجرد العثور عليه، يجب أن تعرف من يمتلك هذا الرمز من اسم DLL. اطلب منهم كيفية إغلاقه بشكل صحيح.

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