Главная страница
    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.031 c
10-1096551187
AntonSh
2004-09-30 17:33
2005.07.18
COM Server


3-1118267577
highlander
2005-06-09 01:52
2005.07.18
Работа с БД Firebird, Interbase в Делфи


14-1119348049
begin...end
2005-06-21 14:00
2005.07.18
Ещё одним инженером стало больше... :-)


1-1119872622
Addast
2005-06-27 15:43
2005.07.18
копия


4-1116247125
KSN
2005-05-16 16:38
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский