Запись в регистр ecx вызывает «Нарушение прав доступа» в Windows 7 - PullRequest
0 голосов
/ 06 августа 2011

Привет и большое спасибо за вашу помощь!

В моем коде на c ++ у меня есть некоторый встроенный ассемблерный код, и в строке [mov ecx, 1AF858h] постоянно появляется сообщение об ошибке «Нарушение доступа»,Он отлично работает с Windows XP, но, к сожалению, не с Windows 7.

Я не понимаю, в чем причина проблемы, и я хотел бы знать, что мне нужно сделать, чтобы ее исправить.

ВидС уважением, Дэвид

1 Ответ

3 голосов
/ 06 августа 2011

Вам необходимо использовать VirtualProtect / VirtualProtectEx , чтобы пометить ваш байтовый массив как исполняемый или выделить его с помощью VirtualAlloc , используя правильные flags (вероятно PAGE_READWRITE при написании кода, а затем PAGE_EXECUTE_READ).Обратите внимание, что это, вероятно, должно быть сделано на основе страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...