الكشف عن وقت تشغيل C متعدد المرتبط على Windows

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

  •  12-09-2019
  •  | 
  •  

سؤال

لدي بعض المشاكل مع أحد المشاريع التي أعمل عليها على Windows (64 بت). يتعطل البرنامج في بعض الأحيان، في بعض الأحيان لا، وأشك في ربط المشكلة بذراع تشغيل C متعدد المرتبط. كيف يمكنني اكتشاف هذا على ويندوز؟ حاولت مع depends.exe، لكنه لم يبلغ عن CRT

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

المحلول

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

مع depends, ، أود أن أتأكد من استخدام خيار التنميط الديناميكي، للتحقق من جميع التبعيات ل CRTLs الديناميكية التي يحملونها. إذا لم يحضر أي شيء، أظن أن مشكلتك في مكان آخر.

أود أن أشك في مشكلتك في أماكن أخرى في أي حال، حيث أن DLLs مع واجهات برمجة التطبيقات على مستوى C يجب أن لا، كقاعدة عامة، تعتمد على الدولة المشتركة في CRTL - الأكثر شيوعا مخصص الذاكرة - ويجب أن تعتمد بروتوكول موحد إدارة الذاكرة عبر API، مثل تخصص المتصل، يستخدم Callee، أو تمرير عمليات استدعاء تخصيص الذاكرة، إلخ. وبعبارة أخرى، فإن العديد من CRTLs في نفس العملية ليست عادة مشكلة بسبب الاستخدام الصحيح لبروتوكول إدارة الذاكرة.

بالنسبة للإخفاشات العابرة، أود أن أظن مرتدة أو كومة الفساد.

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