Форум: "Потрепаться";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
ВнизКак в с++ получить значение из памяти зная адрес? (0x8ff0fff4) Найти похожие ветки
← →
Cpp+ (2002-11-12 20:11) [0]Пробовал long* pl = 0x8ff0fff4. Выдает ошибку о несовпадении типов. Объясните в чем причина или посоветуйте хороший c++ форум. Спасибо...
← →
Ketmar (2002-11-12 20:14) [1]RSDN.
Satanas Nobiscum! 12-Nov-XXXVII A.S.
← →
Cpp+ (2002-11-12 20:18) [2]Спасибо, попробуем этот форум... Но что-то я не понял 2 строку...
← →
Jeer (2002-11-12 20:31) [3]Не всем дано:))
← →
Suntechnic (2002-11-12 20:34) [4]
long* pl = (long*)0x8ff0fff4;
← →
Jeer (2002-11-12 20:35) [5]Оказывается вторая строка мешает.:))
← →
Юрий Зотов (2002-11-13 09:03) [6]Еще вариант - ReadProcessMemory.
← →
Fantasist (2002-11-13 10:53) [7]
> Еще вариант - ReadProcessMemory
А зачем ReadProcessMemory если в своем процессе? А если не в своем, то в любом случае ReadProcessMemory.
← →
Cpp+ (2002-11-13 13:24) [8]Я пока в досе учусь программить, на turbo c++(интерфейс, аля turbo pascal 7.0).
Попробовал long* pl = (long*)0x8ff0fff4;
На счет ReadProcessMemory - в справке его не нашел...
На RSDN все глухо
Осталась надежда только на вас :)
← →
Cpp+ (2002-11-13 13:25) [9]Насчет long* pl = (long*)0x8ff0fff4 выдает следующую ошибку
cannot cast from "long" to "long *"
← →
Игорь Шевченко (2002-11-13 14:04) [10]Cpp+ (13.11.02 13:25)
?
Не выдает...
← →
KSergey (2002-11-13 14:15) [11]> Cpp+ (13.11.02 13:25)
Программа
#include <stdio.h>
void main (void)
{
long *lp=(long*)0xfff4;
printf ("%p", lp);
}
компилится и в MS VC++ v6 и в Borland C++ v3.1 без проблем, более того - работает (выводит присвоенное значение адреса).
Вот только другое дело -что это за адрес такой 0x8ff0fff4 да еще в DOS"е?!
Если уж взялись за дос - смотрите сегментированную память. Для присвоения констант указателям в досе надо использовать какие-то макросы (OFFSET или что-то такое, давно это было ;).
Впрочем, каков вообще смысл присваивать константы указателям? куда-то что-то пишем? а может другими задачами заняться?
← →
Ketmar (2002-11-13 15:49) [12]>может другими задачами заняться?
ага. калькулятор писать. или медиаплеер. а потом продавать за немеряные буказоиды %-)
Satanas Nobiscum! 13-Nov-XXXVII A.S.
← →
Lord Warlock (2002-11-13 15:58) [13]Вообще-то надо так
long pl = (long*)0x8ff0fff4;
← →
Игорь Шевченко (2002-11-13 16:22) [14]Lord Warlock © (13.11.02 15:58)
> Вообще-то надо так
>
> long pl = (long*)0x8ff0fff4;
Не надо так.
В крайнем случае,
long pl = *((long*)0x8ff0fff4);
:-)
← →
Cpp+ (2002-11-14 19:48) [15]Раскрою свою тайну :): мне нужно на самом деле нужно обратиться на адрес 0xFFFF:05. Там хранится версия биоса, которую я и хочу получить именно этим путем. Только я не могу понять что такое 05. Смещение что ли? Подскажите, пожалуйста...
P.S.
long pl = (long*)0xffff действительно работает, а
long pl = (long*)0x8ff0fff4 действительно не работает :). Может из-за того, что 0x8ff0fff4 слишком большое для longа значение?
Спасибо.
← →
cpp+ (2002-11-14 19:55) [16]Извините, я в P.S. ошибся. на самом деле работает
long *lp =(long*)0xfff4. Это меня Lord Warlock немного спутал :)
← →
Fantasist (2002-11-14 20:17) [17]
> На RSDN все глухо
> Осталась надежда только на вас :)
??? Посмотри очень внимательно.
http://rsdn.ru/forum/Message.aspx?mid=129807
Там тебе ответили 5 минутами позже, чем твой вопрос.
Очень подробно: 13.11.02 11:16 - http://rsdn.ru/forum/Message.aspx?mid=130159&only=1
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.015 c