Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2012, 13:17   #1
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию Windows XP и Windows 7

Доброго времени суток, форумчане.

Составляю программу в WinXP. Всё работает хорошо, без глюков. Скинул брату на ноут, прога не работает.

Долго искал в чём проблема, нашёл.

Загвоздка оказалась в процессе, в котором прога делает махинации. А именно в адресах.. Они плавают, и довольно с большим диапазоном.. примерно от 00401D64 до 017E1D64... Может даже больше.

...1D64 этот кусок адреса неизменяемый, меняется только первые 4 символа.

Может быть кто сталкивался с такой проблемой, что можно сделать, чтобы в Win7 адреса не плавали?

Пробовал поставить совместимость на программу и процесс для WinXP(3), делал запуск от имени администратора, проблема не решается.
xRamzeSx вне форума Ответить с цитированием
Старый 04.07.2012, 13:26   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Загвоздка оказалась в процессе, в котором прога делает махинации. А именно в адресах.. Они плавают, и довольно с большим диапазоном.. примерно от 00401D64 до 017E1D64... Может даже больше.
И правильно делают) Ведь на каждый запуск процесса выделяется не фиксированная, а свободная область памяти. Делать махинации в процессах нужно с умом...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 04.07.2012, 13:28   #3
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

В WinXP данная проблема не наблюдается... Можно что-нибудь сделать?
xRamzeSx вне форума Ответить с цитированием
Старый 04.07.2012, 13:30   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
В WinXP данная проблема не наблюдается...
Вы на одном компьютере проверяли? или на нескольких?
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 04.07.2012, 13:33   #5
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Вы на одном компьютере проверяли? или на нескольких?
На нескольких. На WinXP всё без проблем, а на Win7 всё плавает))

В WinXP, необходимый адрес равен 007E1D64.

Последний раз редактировалось xRamzeSx; 04.07.2012 в 14:04. Причина: Обновление информации
xRamzeSx вне форума Ответить с цитированием
Старый 04.07.2012, 14:39   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Ведь на каждый запуск процесса выделяется не фиксированная, а свободная область памяти.
там виртуальная память вообще то, потому каждый тут не причем.
скорее всего та память просто выделяет из кучи, а не статическая, а значит где то должен быть указатель на нее.

на семерке же еще рандомизация адреса исп модулей есть
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.07.2012, 19:16   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

По идее распределение адресов от запуска к запуску может меняться. Соответственно, программа, работающая с адресами, должна предусматривать возможность такого изменения.

Другими словами, это не "семерка", а ХР работает неправильно. Либо Вы проверяли на слишком ограниченном наборе компьютеров с ХР, что не заметили данного эффекта.
s-andriano вне форума Ответить с цитированием
Старый 04.07.2012, 21:14   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
xRamzeSx
И что программа делает? Для чего написана? От чего зависима?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.07.2012, 15:27   #9
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Цитата:
Другими словами, это не "семерка", а ХР работает неправильно. Либо Вы проверяли на слишком ограниченном наборе компьютеров с ХР, что не заметили данного эффекта.
На XP всё без проблем, проверял на многих компах..
Цитата:
И что программа делает? Для чего написана? От чего зависима?
В процессе есть значение, равное 55, я его программно меняю на 0 и всё.
xRamzeSx вне форума Ответить с цитированием
Старый 05.07.2012, 20:01   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Вам уже ответили - в семерке рандомизация базы по умолчанию, в ХП добавляли с какими-то обновлениями.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правда ли что Windows xp 64 определяет болше Оперативки чем Windows xp 32 subbota Операционные системы общие вопросы 4 03.06.2012 17:29
Собираюсь перейти с Windows на Linux, какой из дистирибутивов наиболее похож на Windows (Xp,7)? ivan.tiran Windows 5 09.03.2012 17:51
Проект (работа с БД) на Delphi XE2 на Windows 7 64. Будет ли эта программа корректно работать на Windows 7 32 ? Dux Общие вопросы Delphi 10 04.10.2011 19:33
Windows7,не работает HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows NT\CurrentVersion\Windows\AppInit_D LLs ассемблер123 Windows 0 22.04.2010 18:30