Добрый день. Помогите пожалуйста. Есть функция на C# полностью рабочая, мне надо переписать её на C++. Вот она на C#: Код (Text): base.offset = 0x8f1d8e78; uint KM = SetKMode(1); uint PP = SetProcPermissions(uint.MaxValue); byte* ptr = (byte*)base.offset; int t=0; for (int i = 0; i < 8; i++) { try { ushort* ptr1 = (ushort*)(ptr + 0x5e); t = ptr1[0]; ptr1 = (ushort*)(ptr + 0x58); ... Вот этот же блок на C++: Код (Text): UINT offset=0x8f1d8e78; BOOL u=SetKMode(true); DWORD p=SetProcPermissions(0xFFFFFFFF); BYTE* numPtr=(BYTE*)offset; int t=0; for(int i=0;i<8;i++){ UpdateWindow(lb); try{ USHORT* numPtr2=(USHORT*)(numPtr+0x5E); t=numPtr2[0]; //На этой строке вылетает <--- numPtr2=(USHORT*)(numPtr+0x58); ... На указанной строке приложение тихо вылетает,т.е. ни каких сообщений об ошибках и т.д. нет.Блок catch не вызываеься. Скажите как это вылечить? Или как подругому это сделать. ...адресс указателя взят не с неба и не один десяток раз проверен в C#... Приложенние для Windows Mobile 5. ---0--0--- SetKMode(BOOL fMode) - This function allows an application to switch between kernel and user modes. fMode - Setting to TRUE enters kernel mode; setting to FALSE enters user mode. ---0--0--- SetProcPermissions(DWORD newperms) -This function sets the internal permissions bitmask for the current thread, thereby enabling access to the address space of another process. newperms - Bitmask specifying the new permissions. Use the value 0xFFFFFFFF to set access rights to the whole system; otherwise, use the values returned by GetCurrentPermissions. ---0--0---
он и не обязан вызываться. покажи этот блок кстати. есть ли там ниже всех кетчей catch(...) {} ? и еще, почему не делаешь вот так: Код (Text): try{ for(int i=0;i<8;i++){ //loop's body } }catch ...
Попробуй в SetKMode ставить 1 (TRUE), а не true; И еще проблема может быть в том, что приложение(или что это у тебя ) не подписано. SetProcPermissions - относится а АПИ, которые могут использовать только доверенные приложения, и на WM5 просто не сработает, поэтому и вылетает, т.к. не может обратится к памяти.