Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
Витёк   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
9-1112792754
anat
2005-04-06 17:05
2005.07.18
OpenGL нужна помощь


14-1119725269
lookin
2005-06-25 22:47
2005.07.18
Восстановить контакт в ICQ


14-1119443440
Магнум
2005-06-22 16:30
2005.07.18
Windows Task Manager в Windows XP


3-1118123435
ShotGuN
2005-06-07 09:50
2005.07.18
Чем заменить Convert?


4-1116539275
arous
2005-05-20 01:47
2005.07.18
Размещение папки "Быстрый запуск"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский