ЕП
Елена Поселягина

При запуске игры система выдаёт: Ошибка при инициализации приложения 0xc0000005 . Как её устранить!!??

Всем привет! Подскажите пожалуйста, как справиться с данной проблемой? Если есть возможность, пошагово.

Ан
Андрей

Проблема
Когда инициировать событие __raise или отсоединить событиях машинного кода (__unhook) в неуправляемых приложениях, может появиться следующее сообщение об ошибке:
Необработанное исключение виртуальный адрес в исполняемый файл: 0xC0000005: нарушение прав доступа чтения виртуальный адрес склада
где виртуальный адрес и исполняемый файл являются значения, которые зависят от конкретного приложения.
Перейти к началу страницы | Отправить отзыв
Причина
Проблема возникает, когда конструктор источника событий определен за пределами области действия класса. Список обработчиков событий не инициализируется в конструкторе источника событий в этот код. Таким образом при доступе к неинициализированной памяти возникает нарушение прав доступа.
Перейти к началу страницы | Отправить отзыв
Временное решение
Для временного решения проблемы используйте один из следующих методов:
Способ 1
Определите конструктор источника события в его области действия класса. Для этого замените существующий код:

struct A {
__event void Event();
A();
void bar(){}
};
//Constructor defined outside class scope.
A::A() { }

Следующий код:

struct A {
__event void Event();
A() { }; //Contructor defined in class scope.
void bar(){}
};

Способ 2
Включите код инициализации eventHandlerList в конструкторе источника событий. При этом предполагается, что в CPP-файл, содержащий определение класса источника событий является event.cpp. Введенный код, создаваемый компилятором могут храниться в промежуточный файл с помощью параметра компилятора командной строки /Fx .

В командной строке введите следующую команду:

cl /Fx event.cpp

Введенный код, созданный компилятором, сохраняются в файле с. расширение mrg.cpp. Для event.cpp файл с введенного кода является event.mrg.cpp.
В промежуточный файл, созданный (event.mrg.cpp) добавьте следующий код к конструктору источника событий:
Если исходный класс событий с именем A определен в пространстве имен X, добавьте следующий код:

__eventHandlerList_X_A_Event = 0;

конструктор для a.
Если исходный класс событий с именем A не определен в пространстве имен, добавьте следующий код:

__eventHandlerList_A_Event = 0;

конструктор для a.
Где A — исходный класс событий X является пространством имен для Aи событие – это событие определяется с помощью ключевого слова __event в исходный класс.
Скомпилируйте промежуточный файл в командной строке с помощью следующей команды:

cl event.mrg.cpp

Похожие вопросы
ошибка при инициализации приложения 0xc0000005 как решить проблему
Что делать при запуске игры выдаёт ошибку, ошибка инициализации, что делаеть?
Как устранить ошибку в игре HITMAN? Пишет что ошибка при инициализации приложения (0xc0000005).
скачал дирекс теперь выдаёт Ошибка при инициализации приложения (0xc0000005). Для выхода из приложения нажмите "OK" что
"Ошибка при запуске приложения 0xc0000005"
googleupdate.exe - ошибка приложения ошибка при запуске приложения (0xc0000005)
Ошибка при запуске приложения (0xc0000005)
Ошибка запуска приложения 0xc0000005.
ошибка при запуске приложения 0xc0000005
Почему при запуске приложений компьютер выдаёт ошибку 0xc0000005?