الدخول
يوم جيد. هل أنت على دراية بالاستثناء 0xc00007b ؟ منذ نقل محرك X-Ray إلى x64 ، كان هناك الكثير من التقارير حول مشكلة 0cx00007b. في 90 ٪ من الحالات ، كانت هذه مشكلة مع عدم وجود سائق OpenAL 64 بت.
أفكار لحل المشكلة
في البداية ، أجبنا باستمرار على أنك تحتاج إلى تثبيت برنامج التشغيل ، وبعد بضعة أشهر كتبنا أسئلة وأجوبة حول بدء التشغيل والمشاكل المحتملة. لكن هذه التقارير لم تختف ، لا يحب الأشخاص في CIS القراءة بشكل خاص ، لذلك قررنا حل المشكلة بشكل جذري: تثبيت برنامج التشغيل من أسفل المحرك ، إذا لم يكن هناك أي شيء.
الخطوة 1: بدء البرنامج عندما دلل ليست كافية
أسهل طريقة لتوصيل المكتبات مع بعضها البعض هي بناء ( تعليق براغما ) ، ولكن في حالتنا لا يمكن القيام بذلك.
لذلك ، الخطوة 1: ربط واضح أو مرحبا extern "C"
.
ما نحتاج إليه: فك إكس من مكتبات المحركات. يتم ذلك بالطريقة التالية:
1) نأخذ وظيفة لبدء تشغيل المحرك في المكتبة الديناميكية:
extern "C" --
2) استدعاء وظيفة من إكس لدينا:
using RunFunc = void(__cdecl*)(const char*);
الخطوة 2: فحص السائق
حسنًا ، كل شيء بسيط ، نحصل على نظام واحد (ربما يفاجأ شخص ما ، لكن نظام التشغيل ليس دائمًا في قسم C :) والتحقق من dll في مجلد برنامج التشغيل:
الخطوة 3: الملف غير موجود
بادئ ذي بدء ، نحن بحاجة إلى أن نسأل المسؤول عن حقوق المستخدم ، لأن سوف تضطر إلى العمل مع دليل النظام:
المرحلة الثانية: نسخ المكتبة إلى النظام
{ ...
الخاتمة
بالطبع ، الطريقة مضحكة للغاية ، ولكنها مناسبة لمثل هذه المشاريع. حظا سعيدا للجميع!