Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.05;
Скачать: CL | DM;

Вниз

Как в с++ получить значение из памяти зная адрес? (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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
7-14831
Извращенец2
2002-10-04 07:37
2002.12.05
Путь установки Windows


3-14444
Shrek
2002-11-18 15:05
2002.12.05
Проблема с SQL и DBCtrlGrid!


7-14847
Pavel_s
2002-10-02 13:05
2002.12.05
Plugins


3-14439
vss
2002-11-18 08:29
2002.12.05
Фильтр


6-14712
Sergey V. Shadrin
2002-10-02 15:56
2002.12.05
как проверить установлен ли TCP/IP протокол?