» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » флаги (Когда переводим все мапы в текстовые файлы...)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 ] Все собщения

 
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

Когда переводим все мапы в текстовые файлы, флаги всех объектов на мапе пишутся в одном длинном числе. Как мне получить значения каждого флага по отдельности из текстового файла?

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 22:33 - 13 Авг., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Перевести его в шестнадцатеричный формат, например, с помощью виндового калькулятора. Затем влезть в доку по протофайлам и смотреть там что и где находится.

Отправлено: 8:55 - 14 Авг., 2006
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

Ок, тогда селдующий вопрос. Как в Сишке перевести число в 16-ричный формат?

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 22:23 - 14 Авг., 2006
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Если на ночь глядя ничего не путаю - то так:

int pAddress =16777216;

//чего-то там.....

// ... ...   (void*)pAddress;

printf("%x",pAddress);


-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 23:56 - 14 Авг., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

int PID = 16777216;
printf("%x", PID);

:D

Отправлено: 10:46 - 15 Авг., 2006
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

А адрес-то от PID зачем брать?
И помоему лучше будет так

Код:
 
int PID = 16777216;
printf("0x%08X", PID)



Отправлено: 11:17 - 15 Авг., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Я же говорю: :D. Привычка, блин, в шестнадцатеричном формате именно адреса выводить :D.

Отправлено: 19:46 - 15 Авг., 2006
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Lol

Народ, я ж всего лишь на вопрос отвечал. Вот и привёл кусок из своего кода PID'ы там ни причём, просто способ перевода

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 22:23 - 15 Авг., 2006
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

Ок, это вывод на экран... А как придать переменной значение этого числа в 16-ричном формате.
Опережая ответ, ещё один вопрос. Как получить какое то определённое место в числе 16-ричного формата. Например есть 0х002d542. как мне узнать что находится на 4-ой позиции (d) ?

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 21:38 - 17 Авг., 2006
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Я ж строки с комментариями не от понта приводил... Ок, ещё раз. Смотри:

int pAddress =16777216;

//чего-то там.....

ReadProcessMemory(hNewProcess, (void*)pAddress, &movei, 4, NULL);
printf("%x",pAddress);


Таким образом в ф-ию чтения памяти передаётся целое число как 16-ое. Ну а если ещё проще, то так мо;но:


int pAddress =16777216; //что надо перевести
void* temp; //что получить


temp = (void*) pAddress;

//а дальше что угодно, типа
printf("%x",temp);
printf("%d",temp);

//первое будет
//0x1000000
//второе
//16777216

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 22:56 - 17 Авг., 2006 | ИСПРАВЛЕНО: Ray - 21:59 - 17 Авг., 2006
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com