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

Вниз

память   Найти похожие ветки 

 
Витёк   (2005-06-28 04:33) [0]

Подскажите пожалуйста, как изменить значение числа, зная его адресс в памяти! Например изменить память по адресу 00BA1796.


 
Дмитрий Д.   (2005-06-28 06:38) [1]

http://delphiworld.narod.ru/base/share_dll_mem.html


 
Digitman ©   (2005-06-28 08:15) [2]

PInteger($BA1796)^ := ..


 
Дмитрий Д.   (2005-06-28 08:20) [3]

Я вот думаю насколько просто это было бы сделать в Сях!
Кстати, а в делфи можно переменной присвоить произвольный адрес в памяти без использования каких-либо функций, т.е. средствами языка. Я поигрался с указателями, но что-то не прокатило :-)

По логике:

var buf: array[0..9] of char;
...
@buf := Pointer($00BA1796);

Но это, определенно, не правильно и не работает.

Просьба сильно не плеваться, т.к. в делфи я копаюсь для души, а моя профессиональная деятельность не имеет отношения к системному программированию.


 
Digitman ©   (2005-06-28 08:32) [4]


> просто это было бы сделать в Сях


в ОР не менее просто


> По логике:
>
> var buf: array[0..9] of char;
> ...
> @buf := Pointer($00BA1796);
>
> Но это, определенно, не правильно и не работает


конечно неправильно.

var buf: ^array[0..9] of char; // char *buf[10]
...
buf := Pointer($00BA1796); //buf = (char*)0x00ba1796


 
evvcom ©   (2005-06-28 08:43) [5]


> По логике:
>
> var buf: array[0..9] of char;

По логике у тебя переменная buf жестко компилятором привязана к адресу памяти, по которому лежат 10 символов. А тебе по логике нужен указатель на данные, т.е. см. [4].


 
Юрий Зотов ©   (2005-06-28 08:50) [6]

> Дмитрий Д.

> насколько просто это было бы сделать в Сях!

И действительно - ну что может быть сложнее [2]?

> По логике:
> var buf: array[0..9] of char;
> @buf := Pointer($00BA1796);

Выделение памяти под buf мы сначала поручили компилятору, а потом вдруг решили назначить ее адрес сами - где же тут логика? Разве в сях можно сначала объявить статическую переменную, а потом взять - да и изменить ее адрес вручную?


 
Дмитрий Д.   (2005-06-28 08:50) [7]

Ошибку понял. Однако [4] в D6 выдает: [Error] Unit1.pas(20): Identifier expected but "ARRAY" found
20-я строка это как раз и есть var buf: array[0..9] of char;
Хотя уже не суть важно, смысл понятен.


 
Дмитрий Д.   (2005-06-28 08:51) [8]

Сорри 20-я строка это: buf: ^array[0..9] of char;


 
Digitman ©   (2005-06-28 08:55) [9]


> Дмитрий Д.   (28.06.05 08:51) [8]


type TMyArray = array[0..9] of char;
var buf: ^TMyArray;
...

buf := Pointer($00BA1796);


 
Дмитрий Д.   (2005-06-28 09:00) [10]

Digitman, да-да-да! Можно начинать писать Loader для шароварной проги. Шутка :)


 
default ©   (2005-06-28 09:00) [11]

это скорее попытаться изменить:)



Страницы: 1 вся ветка

Текущий архив: 2005.07.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.184 c
10-1097128475
KV
2004-10-07 09:54
2005.07.18
При отладке COM объекта не доходит до брейкпоинта


3-1118057488
makle
2005-06-06 15:31
2005.07.18
Сжать и сохранить базу Access


3-1117865625
SIDO_Delfi
2005-06-04 10:13
2005.07.18
Oracle


5-1090879946
Victor!
2004-07-27 02:12
2005.07.18
Компонент могргает при перетаскивании


4-1117085498
Logo
2005-05-26 09:31
2005.07.18
нажатие клавиш в DOS приложении