![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 12.07.2010
Сообщений: 249
|
![]()
Определение разрядности (битности) программы.
Вобщем возник такой вопрос (возможно глупый, не исключаю ![]() Тоесть 64 или 32, как это делает task manager в windows 7 (64-x). ![]() И еще вопрос, сейчас скинул другу программу собранную под delphi 7 в 64 разрядной windows 7. И у него не запустилось (приложение не является win32 совместимым) на windows vista. Как такое может быть?Или с какой ОС компилируешь такая битность и будет? Сначала думал, что task manager просто смотрит каталог откуда запущен экзешник, и если каталог Program Files (x86) то 32 бита, но свеже скопилированную программу лежащую совершенно в другом месте он свободно определил как 64 битную. Причем программа была скомпилирована на дельфи 7. Что-то совсем запутался, подскажите, знающие, заранее спасибо.
Moonquake
Последний раз редактировалось phphel; 25.08.2011 в 17:32. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Информация о разрядности exe содержится в секции Optional Header NT заголовка exe файла. А конкретно это:
Nt Header -> Optional Header -> Magic $10b - x32 $20b - x64 приложение собранное для 64 битной систмы не может быть запущено в 32 разрядной системе. Битность приложения зависит от компилятора(в d7-dXE компилятор x32), которым было собрано приложения(я так думаю). Не думаю что твоя проблема зависит от того в какой системе собран exe. Последний раз редактировалось Человек_Борща; 25.08.2011 в 17:59. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.07.2010
Сообщений: 249
|
![]()
Ну вот, программа собрана на дельфи 7 на 64 битной семерке, и определяется как 64 битная.
А почему так, не могу понять..Ведь программа должна быть 32 битной, а она 64..мистика
Moonquake
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 12.07.2010
Сообщений: 249
|
![]()
Видимо таки 32 битная программа после компиляции, значит глюк диспетчера задач.
Тогда вопрос насчет определения. Вот нашел нечто похожее - http://www.delphimaster.ru/cgi-bin/f...1266740974&n=5 это оно?
Moonquake
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
IsWow64Process() вернёт FALSE для 32-битного процесса, запущенного под 32-битной виндой, и для 64-битного процесса, запущенного под 64-битной виндой. Так что прийдётся ещё разрядность винды проверять заодно )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Я думаю, что битность компилируемого exe зависит на прямую от компилятора который используется, а не от системы в которой запущен компилятор.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
Delphi компилирует только в 32-битный код. В 64 битный оно просто не умеет, хотя вроде бы как были какие-то анонсы, но воз и ныне там.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
в delphi XE2 будет 64-битный компилятор
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
Поживем - увидим. Я, например, первый из анонсов в блоге видел от 2010 года. А уже 11 подходит к концу.. Ну посмотрим, если сделают - то сделают. Если перенесут на 13 год - значит можно закапывать ящетаю.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение значения числа при увеличении разрядности | PARTOS | Microsoft Office Excel | 5 | 25.02.2011 20:56 |
Увеличение разрядности чисел с плавающей запятой | Dmitry_B | Общие вопросы C/C++ | 5 | 02.08.2010 22:28 |
Определение разрядности Windows | Alter | Windows | 7 | 24.06.2010 23:29 |
О разрядности компьютера | Kurtan | Помощь студентам | 1 | 21.02.2009 10:15 |
Определение завершения сторонней программы | Хамяг | Общие вопросы Delphi | 3 | 26.11.2008 18:12 |