سؤال

مشروع Visual C ++ 3 المدمج ، وهو بناء لـ PocketPC 2000. على بناء الذراع ، يرمي الرابط الخطأ التالي:

خطأ فادح LNK1223: ملف غير صالح أو تالف: يحتوي الملف على مساهمات PDATA غير صالحة

على SH3 ، يقوم المشروع بتجميع وروابط وأعمال. يعمل المشروع أيضًا عندما يتم تصميمه لـ ARM على Visual C ++ 2005 ، لكنني بحاجة إلى اختبار الإنشاءات على وجه التحديد من EVC3.

أي أفكار ، من فضلك؟ ما هي مساهمة PDATA وكيف يمكنني التأثير (أو تعطيل) تلك؟ إنه شيء يتعلق بالتعامل مع الاستثناء ؛ لقد حاولت تعطيل SEH من خلال تحديد /EHsc, ، دون أي تأثير.

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

المحلول

غريب جدا. حاولت التعليق على كل شيء في الملف. ذهب الخطأ بعيدًا عندما علقت وظيفة كانت خارجي "C" void __declspec (عارية) بدون جسم (جسم #ifdef'fed بعيدا). لدي وظائف مماثلة في المشروع ، لكنها لم ترمي أي أخطاء مثل هذا. ربما حشرة المترجم ...

نصائح أخرى

لا توجد فكرة مني ، ولكن جرد هذا الموضوع الذي قد يمنحك فكرة عن كيفية إصلاح/حل المشكلة ... ربما:

بعد النظر إلى الخطأ عن كثب ، اكتشفت أخيرًا أن هذا مؤثر جانبي لخطوفي SC_SetDaylightTime() في النواة مع نسختي الخاصة. على ما يبدو ، هناك شيء أقوم به في الكود الخاص بي ، مما يجعل المترجم لإنشاء إدخالات PDATA خاطئة بطريقة ما. وضعت استراتيجيا #ifndef عملت من حوله.

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