|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.08.2011, 17:29 | #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. |
25.08.2011, 17:54 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Информация о разрядности 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. |
25.08.2011, 17:59 | #3 |
Форумчанин
Регистрация: 12.07.2010
Сообщений: 249
|
Ну вот, программа собрана на дельфи 7 на 64 битной семерке, и определяется как 64 битная.
А почему так, не могу понять..Ведь программа должна быть 32 битной, а она 64..мистика
Moonquake
|
25.08.2011, 18:48 | #4 |
Форумчанин
Регистрация: 12.07.2010
Сообщений: 249
|
Видимо таки 32 битная программа после компиляции, значит глюк диспетчера задач.
Тогда вопрос насчет определения. Вот нашел нечто похожее - http://www.delphimaster.ru/cgi-bin/f...1266740974&n=5 это оно?
Moonquake
|
25.08.2011, 19:02 | #5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
IsWow64Process() вернёт FALSE для 32-битного процесса, запущенного под 32-битной виндой, и для 64-битного процесса, запущенного под 64-битной виндой. Так что прийдётся ещё разрядность винды проверять заодно )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
25.08.2011, 19:32 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Я думаю, что битность компилируемого exe зависит на прямую от компилятора который используется, а не от системы в которой запущен компилятор.
|
25.08.2011, 19:52 | #7 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
Delphi компилирует только в 32-битный код. В 64 битный оно просто не умеет, хотя вроде бы как были какие-то анонсы, но воз и ныне там.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
25.08.2011, 20:35 | #8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
в delphi XE2 будет 64-битный компилятор
|
25.08.2011, 23:08 | #9 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
Поживем - увидим. Я, например, первый из анонсов в блоге видел от 2010 года. А уже 11 подходит к концу.. Ну посмотрим, если сделают - то сделают. Если перенесут на 13 год - значит можно закапывать ящетаю.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
26.08.2011, 02:19 | #10 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение значения числа при увеличении разрядности | 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 |