Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 851

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте, эксперты!
С чтением\записью оказалось проще чем мне казалось, но возникла проблема:
В приложении код. При записи ~0,1мб происходит ошибка в TmemoryStream. Видимо из-за переполнения. Объясните где ошибка.

Приложение:
  1. f:=Tmemorystream.Create;
  2. GetMem(b,1024);
  3.  
  4. for i:=0 to strtoint(edit1.Text) do
  5. begin
  6. ReadProcessMemory(HW,ptr($000000+i*1024),b,1024,t);
  7. end;
  8.  
  9. f.WriteBuffer(b,(i+1)*1024);
  10.  
  11. f.SaveToFile('C:temp.txt');


Gooddy Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 27 мая 2009, 16:58
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 27 мая 2009, 17:37; участников в обсуждении: 2.
Gooddy

Gooddy (статус: 3-ий класс), 27 мая 2009, 17:04 [#1]:

" Первый мегабайт вообще особняком сидит - это дань DOS'у. "
Это написал Вадим. К. Может в этом дело? Попробую читать со второго мегабайта
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 27 мая 2009, 17:06 [#2]:

Мда. ещё выяснилось что код у меня не рабочий:) Вобщем сначала почитаю.
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 27 мая 2009, 17:25 [#3]:

Так. я вот что обнаружил. свободно читаются ячейки с $400000 до $683fff
Чисти код! Чисти код! Чисти код!
Вадим К

Вадим К (статус: Академик), 27 мая 2009, 17:30 [#4]:

Да, код явно не рабочий. Читает, читает, а потом пишет последее чтение. исправтесь.
Во вторый, я же писал, нельзя всю память подряд читать. Есть специальные функции для того, что бы проверить, "можно ли". Например VirtualQuery
Галочка "подтверждения прочтения" - вселенское зло.
Вадим К

Вадим К (статус: Академик), 27 мая 2009, 17:31 [#5]:

адрес $400000 и выше обычно читается, потому что здесь обычно размещается приложение.
Галочка "подтверждения прочтения" - вселенское зло.
Gooddy

Gooddy (статус: 3-ий класс), 27 мая 2009, 17:34 [#6]:

ужас. как я и думал в новые дебри кода лезть тяжело и опасно для рассудка.
Чисти код! Чисти код! Чисти код!
Вадим К

Вадим К (статус: Академик), 27 мая 2009, 17:36 [#7]:

Я думаю, что следует взять книжечку Рихтера и читать, читать, читать...
Правда там код на плюсах, но в данной области программирования это абсолютно не проблема.
Галочка "подтверждения прочтения" - вселенское зло.
Gooddy

Gooddy (статус: 3-ий класс), 27 мая 2009, 17:37 [#8]:

всё. я разобрался. теперь если что буду писать сюда дабы тему не размножать. когда закончу выложу код, чтобы другие на мои грабли не наступали.
Чисти код! Чисти код! Чисти код!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:31
Выполнено за 0.02 сек.