Определение архитекуры процессора в OS Windows

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Определение архитекуры процессора в OS Windows

Сообщение AlphaBlend » 13.07.2016 17:34:28

спасибо ) ларчик - то вон как просто открывался ) :mrgreen: :mrgreen: :mrgreen:
Аватара пользователя
AlphaBlend
постоялец
 
Сообщения: 207
Зарегистрирован: 22.05.2016 10:13:10

Re: Определение архитекуры процессора в OS Windows

Сообщение bormant » 14.07.2016 19:08:15

Код: Выделить всё
function is64bit: Boolean;
type
  TisWow64ProcessProc = function (Handle: THANDLE; var is64: BOOL): BOOL; stdcall;
var
  is64proc: TisWow64ProcessProc;
  res: BOOL;
begin
  is64proc:= TisWow64ProcessProc(GetProcAddress(GetModuleHandle('kernel32'), 'IsWow64Process'));
  res:=false;
  if Assigned(is64proc) then is64proc(GetCurrentProcess, res);
  Result:=res;
end;
Аватара пользователя
bormant
постоялец
 
Сообщения: 408
Зарегистрирован: 21.03.2012 11:26:01

Re: Определение архитекуры процессора в OS Windows

Сообщение mig-31 » 15.07.2016 12:08:23

Так можно через ifdef
Код: Выделить всё
{IFDEF WIN32}
  WindowsVerison:=32;
{ELSE}
  WindowsVerison:=64;
{ENDIF}
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: Определение архитекуры процессора в OS Windows

Сообщение stanilar » 16.07.2016 02:16:58

На 64 разрядный процессор может быть поставлена 32 разрядная винда.
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: Определение архитекуры процессора в OS Windows

Сообщение pupsik » 16.07.2016 02:35:17

Т.к. винда это не линкус, 32-битная программка запустится на 64-битной Винде без проблем. И версия длл-ки понадобится только одна.

да ну...у...
Что же openssl (32) не работает под 64 биткой? Он запускается и вроде как работает но... не работает. Смена длл на 64 битку и всё ок.
Так же и 7-зип себя ведет.
А вот приложение 32 битное, юзающее длл (32/64) работает как на 32-х, так и на 64-х...

п.с.
Да, всё только 32-битное и проблем не будет.
я сперва так то же думал. :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Определение архитекуры процессора в OS Windows

Сообщение скалогрыз » 16.07.2016 05:51:12

pupsik писал(а):да ну...у...
Что же openssl (32) не работает под 64 биткой? Он запускается и вроде как работает но... не работает. Смена длл на 64 битку и всё ок.
Так же и 7-зип себя ведет.
А вот приложение 32 битное, юзающее длл (32/64) работает как на 32-х, так и на 64-х...

использую 32-битное приложение, скопилированное в Delphi 7 (для верности! чтобы 64-битного кода не забралось)
приложение использует 32-битную версию openssl (ssleay32.dll, libeay32.dll)
всё работает как часы, на 64-битной системе.

что я делаю не так?

ЗЫ: Хром, которым я захожу на этот форум, то же 32-битный. И работает ведь...
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Определение архитекуры процессора в OS Windows

Сообщение Лекс Айрин » 16.07.2016 09:26:08

скалогрыз, скорее всего, имеется ввиду нечто использующее в 32битной среде один код(набор инструкций), а в 64битной немного другой.

У меня, кстати, 32битные бинарники запускаются под любой современной виндой. Так что я даже не заморачиваюсь с битностью.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Определение архитекуры процессора в OS Windows

Сообщение pupsik » 16.07.2016 12:03:14

скалогрыз а я и не сильно спорить пытаюсь. Работает - оки. Только реальная ситуация была. Т.е. 32 битные длл послали подальше. openssl конект не "делал" по https. 7- зип архивировать отказывался. Конечно можно списать на кривые руки и кривых админов... У вас же работает :)))
Дык что не обращайте внимания.

п.с.
Вспомнил. Есть ещё один набор компонентов... Определение кодировки файла. На разных системах и битах ведёт себя по разному. Это великолепно "смотрится" в DC. Только уж не надо о моих кривых руках. Есть в нете жалобы на неопределение кодировки. Уж разрабы латают его, латают, а лаг остался (у меня на ос от сборки к сборке вариации происходят).
Ну нет проблем с битность дык это и найс :lol:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Определение архитекуры процессора в OS Windows

Сообщение Лекс Айрин » 16.07.2016 12:21:27

pupsikдело не в твоих кривых руках. Это явно случай неправильно настроенной (скомпилированной) системы.
По идее, в системе просто должны, при надобности, вызываться 32битные библиотеки (или поддержки 32битного режима), но этого не происходит. Вполне вероятно, что поможет перенос программы (или библиотек) в соответствующую папку.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Определение архитекуры процессора в OS Windows

Сообщение pupsik » 16.07.2016 19:20:53

Это явно случай неправильно настроенной (скомпилированной) системы.
т.е. кривые руки админа... ню-ню... :)
Вполне вероятно, что поможет перенос программы (или библиотек) в соответствующую папку.
а то этого не делали :mrgreen: Много чего делали, а потом решили по простому....
А вот с кодировкой. Это отдельный случай. Не выцепил ещё причину.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Определение архитекуры процессора в OS Windows

Сообщение скалогрыз » 17.07.2016 00:44:54

pupsik писал(а):А вот приложение 32 битное, юзающее длл (32/64) работает как на 32-х, так и на 64-х...
... Много чего делали, а потом решили по простому....


Вот меня интересует это "решение по простому" - что за длл такие 32/64?
Согласно спецификации DLL формата, расширенный идентификатор поддерживает 3 системы: x86. i64 (итаниум 64-бит), x86_64 (православный 64-бит).
Каких либо документированных способов создавать .dll сразу для двух архитектур нет.

Отсюда и вопросы: Как? Что это? И можно ли в руках поддержать этот самый dll 32/64?

pupsik писал(а):openssl конект не "делал" по https. 7- зип архивировать отказывался.

Крокодил не ловится, не растёт кокос.
А конкретные ошибки какие-нибудь библиотеки выдавали ? (например Access Violation) или библиотеки не могли к процессу загрузиться?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Определение архитекуры процессора в OS Windows

Сообщение pupsik » 17.07.2016 16:01:36

скалогрыз в том то и дело: НИКАКИХ ошибок не было... Просто не делало необходимое. Возможно внутри длл и проскакивали ошибки но... Или вы знаете как их отловить (ошибки длл), используя "третьи руки"?
или библиотеки не могли к процессу загрузиться?
руками подгружались и отзывались... Была загрузка и при "авто" режиме.
Ппц... вот реально была загвоздка в длл. Т.е. их варианте сборки (32/64). Ну не натыкались вы на такое.... Найс. Но фиг я буду на 64-битку переть ВСЁ 32 битное. Это моё мнение.
п.с.
x86/x86_64 :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Определение архитекуры процессора в OS Windows

Сообщение скалогрыз » 17.07.2016 16:33:44

pupsik писал(а):Т.е. их варианте сборки (32/64). Ну не натыкались вы на такое....

так что за вариант-то такой? где взял? как сделал?

dll-ка бывает либо 32битной (и будет работать как на 32, так и на 64-битной винде)
либо 64 битной (и работать будет только на 64 битной винде)
а 32/64 не бывает.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Определение архитекуры процессора в OS Windows

Сообщение pupsik » 17.07.2016 17:41:39

Т.е. вас смущает 32/64 :)))))
Я не имел ввиду что существуют такие сборки: 32/64. А всего навсего имел ввиду: есть вариант для 32-х, и 64-х... Странно как то это вам пояснять :mrgreen:
По поводу примеров....
Они вам надо? Т.е. пока не сталкивались зачем грузить себя? И как это всё касается темы вопроса? Я высказал свое мнение. Нравится оно или нет это не мои проблемы. Вы не натыкались на такой "прикол" и что?

п.с.
Только вот зачем предлагают 32/64 сборки программ и длл. Только ради фана или от нечего делать? Или, возможно, существуют нюансы архитектур?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Определение архитекуры процессора в OS Windows

Сообщение скалогрыз » 17.07.2016 17:48:55

pupsik писал(а):Т.е. вас смущает 32/64 )))) Я не имел ввиду что существуют такие сборки: 32/64

Да ну нафиг - не предлагал. Твои слова выше по тексту:
pupsik писал(а):Что же openssl (32) не работает под 64 биткой? ... А вот приложение 32 битное, юзающее длл (32/64) работает как на 32-х, так и на 64-х...

Длл бывают либо 32, либо 64, а вот совместных 32/64 не бывает. Но судя по изложенной тобой проблеме, 32-битная длл у тебя не заработала, а вот длл (32/64) (что бы это не означало), очень даже заработало.

Деталей от тебя не добиться, хотя очень интересно. Если уж пробелма возникла у тебя ( и у похоже, что не у тебя одного ), то значит она может возникнуть у кого-нибудь ещё, и нужно уже сейчас знать как с ней бороться - т.е. менять 32-битные длл, на длл (32/64).

pupsik писал(а):Только вот зачем предлагают 32/64 сборки программ и длл. Только ради фана или от нечего делать? Или, возможно, существуют нюансы архитектур?

64-битные предлагают для тех, где 64-бит могут действительно пригодиться. Например в серверных приложениях, какой-нить базе данных. Адресация терабайт памяти бывает очень удобной.
Для простых смертных 32-битки более чем достаточно.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 239

Рейтинг@Mail.ru