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

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

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

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

Сообщение pupsik » 17.07.2016 18:08:12

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

Для простых смертных 32-битки более чем достаточно.
тут проще: https://groups.google.com/a/chromium.org/forum/#!msg/chromium-dev/FoE6sL-p6oU/mVlwyh02AgAJ у меня деби8 (x86) и хром отказывается обновляться.... Значит что я чересчур очень простой смертный. Хотя мне более мозила подходит но всё же. По идее 64 битная архитектура теперь подходит для простых смертных.
Кстати: а асм код для 32-х биток будет корректно работать на 64-х битке?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

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

pupsik писал(а):да уж.... каждый видит (понимает) по разному...

а ну отлично тогда, я просто тебя не правильно понял.
И на самом деле ты согласен, что 32-битное приложение с 32-битными длл-ками, на 64 винде заработает без проблем?!

pupsik писал(а):у меня деби8 (x86) и хром отказывается обновляться...

Пофигу на мир линукса - там свои правила и заморочки. В мире винды такой проблемы нет, т.к. в 64-битные системы по-умолчанию заложили возможность запускать 32-битные приложения.

pupsik писал(а):Кстати: а асм код для 32-х биток будет корректно работать на 64-х битке?

если операционка переключит режим процессора, то да - будет корректно работать.
Если операционка (или какая либо другая программа) не переключит режим, то не будет.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение Sergei I. Gorelkin » 17.07.2016 18:29:04

Есть требование совпадения битности dll и процесса, в который она загружается. Т.е. 32-битный 7-zip на win64 сам по себе вполне работоспособен, а вот добавить команды в контекстное меню Explorer уже не судьба, т.к. для этого нужно загрузить shell extension dll, а Explorer 64-битный.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

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

Сообщение pupsik » 17.07.2016 18:44:34

с 32-битными длл-ками, на 64 винде заработает без проблем?
могут быть проблемы... Поэтому битность длл должна соответствовать битности системы. Потому что, на собственном опыте, приложение (32 бит) и длл (32 бит) не работало на 64 битной системе, а приложение (32 бит) и длл (64 бит) работало.

Пофигу на мир линукса...
это замечательно. Я привел пример не для этого...

п.с.
если операционка переключит режим процессора...
значит: "ткнуть мордой" надо... Весьма скользкий момент. Ну да ладно.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение скалогрыз » 17.07.2016 20:08:31

pupsik писал(а): а приложение (32 бит) и длл (64 бит) работало.

и ты утверждаешь что такая пара 32-бит приложение и 64-бит длл, работает на 32-битной Винде?
точно?
ты уверен?

Тут нужно помнить, что:
1) Винда не позволит подгрузить длл-ку, с битностью отличной от битнойсти программы ( т.е. к 32-битной программе нельзя 64-битную длл. И к 64-битной программе, нельзя 32-битную длл)
2) 32-битные процессоры немогут в 64 битный код.

pupsik писал(а):значит: "ткнуть мордой" надо... Весьма скользкий момент. Ну да ладно.

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

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

Сообщение pupsik » 17.07.2016 20:28:45

точно?
ты уверен?
практически у меня так работало. А вот почему - не заморачивался. Для простой утилиты хватило предварительное перелопачивание кода и не понимания причины не работы... А когда тупо подменил длл и оно заработало...

32-битные процессоры немогут в 64 битный код.
а вот это уже касаемо асма.... Ну да ладно это мои "заморочки".
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение скалогрыз » 17.07.2016 23:19:20

pupsik писал(а):практически у меня так работало. А вот почему - не заморачивался. Для простой утилиты хватило предварительное перелопачивание кода и не понимания причины не работы... А когда тупо подменил длл и оно заработало..

мне кажется ключевое слово "тупо".
Попробуем сделать не "тупо" а осознано.
попробуй запустить утилиту objdump для той dll-ки, которую ты используешь, таким вот образом:
Код: Выделить всё
objdump -f 7za.dll

утилита тебе должна ответить что-то вроде:
Код: Выделить всё
7za.dll:     file format pei-i386
architecture: i386, flags 0x0000010b:
HAS_RELOC, EXEC_P, HAS_DEBUG, D_PAGED
start address 0x100316d7

а потом тоже самое но сделай с .exe файлом утилиты, и дай знать результаты.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение pupsik » 17.07.2016 23:55:19

скалогрыз можно ещё один тупой вопрос? "Зачем козе баян..."? Т.е. что в хотите этим показать, узнать? Как данные тесты касаемы вопроса?
Ну... ок: проведу ещё раз ваши (или ещё чьи то тесты), попрошу друга на тех системах провести данные тесты. Получу, в результате ту же фигню. Потеряю время. Ради чего? Ведь вы потом напишете: у меня всё работает и т.д., и т.п...
Не вижу смысла. Я уже ранее писал. "не встречали", " всё работает" ну и замечательно. Я написал только свой опыт, мнение.
Я бы вам сорцы кинул. И видео бы выложил. И скринами бы "затарил". Только сложность в том что данные утилиты писались лет эдак 5 назад. Сорцы не сохранились потому что - это были простые утилиты, для специфического использования. Т.е. написал и забыл. Сложностей и "выкрутасов" не было. Изящного или специфичного кода не было. Ну...у если не считать не работающего tprocess (т.е. он не всё в out выводил, использовал из fpcup наработку).
Делать похожее сейчас (что бы доказать кому то)- не имею желания и возможности.
Считайте моё мнение чем угодно. Это только мнение....

п.с.
Меня сейчас более интересует. Где "течет" из нынешнего проекта. Достала уже эта "течка". Вроде всё нормально, а оно где то баг зарылся. :?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение скалогрыз » 18.07.2016 00:35:31

pupsik писал(а):"Зачем козе баян..."?

затем что я зануда и отстаиваю своё утверждение, что 32-битные приложения работают на 64-битной винде.

я услышал достаточно много невнятных объяснений, вроде dll 32/64 и 32-битная программа загружающая 64-битную dll и всё это работает и на 32-битной и 64-битной операционке. И при этом никаких сообщений об ошибках - "просто не работает".
Вот и хочу подтверждений своим догадкам ...

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

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

Сообщение pupsik » 18.07.2016 01:14:01

что 32-битные приложения работают на 64-битной винде.
приложения - работают. длл не стабильны. Т.е нет.
По поводу:
затем что я зануда
. Это моя проблема?
Принимайте как хотите то что я написал. Это ваше решение (мнение): верить, не верить, считать что ошибаюсь и не верно довожу либо пургу пишу, или трёп развожу...
Это только мнение....
Как и у вас есть мнение:
Да, всё только 32-битное и проблем не будет.
. Вы не согласны с моим, я не согласен с вашим. И что?
п.с.
вроде dll 32/64 и 32-битная программа загружающая 64-битную dll и всё это работает и на 32-битной и 64-битной операционке. И при этом никаких сообщений об ошибках - "просто не работает".
ппц. "каверкаете" вы... Я не писал что на 32 битке будет работать "связка" 32-х битное приложение + 64-я битная длл... Я писал что на 64 битку надо 64 битную длл, а приложение и 32-битное будет работать.
Исходники, скриншоты, видео, тут, увы, никак не помогут, нужно смотреть в итоговые бинарные файлы.
а это вообще ржака, уж пардон...
Э..э, вам говорят: не работает приложение. Показывают скрин, описывают что делали для достижения "цели" (если логи не ведутся).
А у вас получается настоящий "круть". Вы баг по бинарнику определяете.... Даже зависть берёт.
А я всё по старинке, иногда и на машинку смотрю, где баг "отрисовался". :cry:

Добавлено спустя 8 минут 33 секунды:
п.с. п.с.
Не подскажете: как функция в цикле постепенно начинает "течь" ? При этом все использующие объекты освобождаются. Т.е. create...freeandnil.... И "течёт" . Медленно, но уверенно.
Может бинарник прислать? :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение скалогрыз » 18.07.2016 04:05:11

pupsik писал(а):Вы не согласны с моим, я не согласен с вашим. И что?

это не мнение, это рекомендация, подкреплённая технической реализацией со стороны самой Винды.
т.к. рекомендация подвергнута сомнению, мне нужно изучить объявленную проблему с не работающей под 64-битной Виндой программой.

pupsik писал(а):приложения - работают. длл не стабильны.

По-моему, одного такого заявления достаточно, чтобы проблемы изучить детаельно.
Потому что: приложения это код, длл-ки это код. Если длл не стабильны, это значит что 32-битный код нестабилен, а значит и программы тоже могут быть нестабильны.
И если это действительно баг со стороны Винды, то за такой пример ошибки, Мелкомягкие могут же и благодарность объявить. Они то, наивные, заявляют, что у на 64битной системе всё 32-битное без проблем работает.

pupsik писал(а):ппц. "каверкаете" вы... Я не писал что на 32 битке будет работать "связка" 32-х битное приложение + 64-я битная длл... Я писал что на 64 битку надо 64 битную длл, а приложение и 32-битное будет работать.

разве каверкаю?!
pupsik писал(а):Потому что, на собственном опыте, приложение (32 бит) и длл (32 бит) не работало на 64 битной системе, а приложение (32 бит) и длл (64 бит) работало.

по-моему, чётко сказано, что на 64-битной система сначала пробовалась связка 32 app +32 dll - сглючило.
потом попробоваль связка 32 app + 64 dll - заработало.
или тут другой смысл в слова вложен?

pupsik писал(а):Э..э, вам говорят: не работает приложение. Показывают скрин, описывают что делали для достижения "цели" (если логи не ведутся).
А у вас получается настоящий "круть". Вы баг по бинарнику определяете....

Скрин ты не показал, а описание что делали вроде бы дал: "https не соединяется, 7zip не архивирует".
Исходя из описания делаю вывод - прежде чем искать баг в коде, нужно проверить правильность используемых библиотек.
Чтобы проверить их правильность нужно иметь их скопмилированные копии.

pupsik писал(а):Не подскажете: как функция в цикле постепенно начинает "течь" ? При этом все использующие объекты освобождаются. Т.е. create...freeandnil.... И "течёт" . Медленно, но уверенно.

heaptrc тебе друг
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение pupsik » 18.07.2016 05:37:13

и 32-битная программа загружающая 64-битную dll и всё это работает и на 32-битной и 64-битной операционке. (ваше писание). Как я понимаю вы хотели сказать: на 32 битке "потянет" 64 битные длл... Если это не "каверкать" то уж пардон...
Остальные вариации на тему "винда ваш лучший друг" и о их "поддержке" - бред.... Т.е. она друг, пока не нарваться.
Повторяю.... Хотите верьте, хотите нет... Желания доказывать обратное - нету...

п.с.
Скрин ты не показал, а описание что делали вроде бы дал: "https не соединяется, 7zip не архивирует".
Исходя из описания ....
опять "каверкаете".... Вы не написали нечто: "жаль что нет возможности, но... можно и с бинарником поколдовать". А сразу " в лес". И по смыслу получилось: я насколько крут что и по бинарнику баг выявлю....

heaptrc - не сильно то и друг... Хотя.

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

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

Сообщение скалогрыз » 18.07.2016 16:48:01

pupsik писал(а):Т.е. она друг, пока не нарваться.
Повторяю.... Хотите верьте, хотите нет... Желания доказывать обратное - нету...

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

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

Сообщение pupsik » 18.07.2016 19:01:30

Опять? Я ужо заговариваться начну:)
Ответьте на такое: загрузит ли 32 битное приложение 32 битную и 64 битную длл? Т.е. простая загрузка, через стандартный loadlyb.... Без проверок.
По идее должно. Ведь "морда-лица" формы и компонентов лазаря берутся из системных длл винды... Но мне интересно ваше мнение...
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение Снег Север » 18.07.2016 19:25:59

По моему опыту 32 битное приложение на подгрузку 64 битной dll либо сразу даст ошибку (в лучшем случае), либо даст AV при попытке что-то из нее вызвать. С неверной работой 32 битных приложений в 64 битном виндосе я сталкивался только если это было что-то древнее, как гуано мамонта.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru