التطبيق الذي تم إنشاؤه في Visual Studio على XP 32 يتعطل 64 على انتهاك الوصول. إعادة ترجمة في بيئة 64 بت للعثور على خطأ ، يعمل بشكل جيد. ماذا؟

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

سؤال

لذلك كنت أتطور على Windows XP Visual Studio 2008. أعتقد أنه يقوم ببناء تطبيق C ++ الخاص بي في وضع 32 بت. عندما أقوم بتشغيل البرنامج على مربع Windows 7 64 Bit الجديد ، فإنه ينطلق في منتصف الطريق من خلال تحميل A ، ثم يلقي خطأ انتهاك الوصول. لذلك ، قمت بتحميل جميع أداة التطوير الخاصة بي وأعدت تنظيم المشروع على Windows 7 للعثور على موقع التحطم ولكنه يعمل بشكل مثالي! ماذا؟ كيف أجعل تطبيقي يعمل على X64؟ هل يجب علي إصدار نسختين منفصلتين؟ أعلم أنه يمكنني استهداف 64 بت ولكني لا أحب اثنين من المنافسين المنفصلين. لقد بحثت ولكن استمر في الحصول على حل الإصدارين أو كل شيء .NET. هذا هو C ++ الأصلي. هل يوجد علم X86 في مكان ما؟

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

المحلول

"هل يجب علي إصدار نسختين منفصلتين؟"يعتمد ذلك على ما يفعله تطبيقك. غالبية تطبيقات 32 بت تعمل بشكل جيد في رائع الوضع.

"هل هناك علامة X86 في مكان ما؟"نعم. افتح مدير التكوين (ALT-B ، O) ، ومن المحتمل أن ترى Win32 في اختيار النظام الأساسي.

لماذا يعطل التطبيق الخاص بك سيأخذ بعض تصحيح الأخطاء. يجب أن تكون قادرًا على إرفاق مصحح الأخطاء بإصدار 32 بت على نظام التشغيل 64bit.

نصائح أخرى

هل فكرت في احتمال أنك قد تكون محطمة الذاكرة؟ من الطريقة التي يتم بها تحميل التطبيق في الذاكرة ، قد يكون التطبيق 32 بت على Windows 32 بت والتطبيق 64 بت على Windows 64 بت "Get Lucky" ، أي لا توجد مواقع ذاكرة مهمة ، في حين أن تطبيق 32 بت على النوافذ 64 بت أقل محظوظًا ويتعطل.

لمعرفة ما إذا كنت بالفعل تهمل الذاكرة ، يمكنك استخدام أدوات مثل تنقية و فالغريند.

كما قالت إجابات الآخرين بالفعل ، فمن المحتمل جدًا أن يكون للتطبيق أخطاء يتم إخفاؤها في بيئة واحدة. الأداة الجيدة التي لها تكلفة منخفضة للدخول من حيث منحنى التعلم هي Microsoft's's تطبيق تطبيق التطبيق. ذلك جنبا إلى جنب مع أدوات تصحيح الأخطاء يمكن أن توفر بداية جيدة جدا. نلقي نظرة على الأداة المساعدة GFLAGS.

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