Переезд на 64-битную винду
От: Тёма Россия  
Дата: 06.07.21 12:10
Оценка:
Есть некий 32-битный софт, сделанный под Windows 7 Emb Std 32bit, который там много лет работал. Сейчас, в связи с тем что железа под Win 7 подходящего всё меньше, решили переезжать под Windows 10 IoT Ent. Сразу 64 бита, т.к. у 32 бит будущего нет, судя по тому что с десктопа 32 бита выпилили ещё в прошлом году.
Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?
Софт ничего особенного не делает, принимает данные по разным каналам связи (UDP, Serial), делает расчёты и отправляет команды обратно. Плюс гуй на Qt4 и 5.
Доп. вопрос: каких проблем ожидать при переходе с Win7 Emb Std на Win10 IoT Ent, если вдруг у кого есть опыт.
Re: Переезд на 64-битную винду
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.07.21 12:16
Оценка: 2 (1) +2
Здравствуйте, Тёма, Вы писали:

Тё>Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?


Никаких. Только неимоверно кривой софт может неправильно работать в такой ситуации.
Re: Переезд на 64-битную винду
От: SaZ Беларусь  
Дата: 06.07.21 12:23
Оценка:
Здравствуйте, Тёма, Вы писали:

Тё>Есть некий 32-битный софт, сделанный под Windows 7 Emb Std 32bit, который там много лет работал. Сейчас, в связи с тем что железа под Win 7 подходящего всё меньше, решили переезжать под Windows 10 IoT Ent. Сразу 64 бита, т.к. у 32 бит будущего нет, судя по тому что с десктопа 32 бита выпилили ещё в прошлом году.

Тё>Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?
Тё>Софт ничего особенного не делает, принимает данные по разным каналам связи (UDP, Serial), делает расчёты и отправляет команды обратно. Плюс гуй на Qt4 и 5.
Тё>Доп. вопрос: каких проблем ожидать при переходе с Win7 Emb Std на Win10 IoT Ent, если вдруг у кого есть опыт.

https://rsdn.org/article/cpp/XXtraps64bit.xml
Автор(ы): Андрей Карпов
Дата: 25.04.2007
Рассмотрены программные ошибки, проявляющие себя при переносе Си++ — кода с 32-битных платформ на 64-битные платформы. Приведены примеры некорректного кода и способы его исправления. Перечислены методики и средства анализа кода, позволяющие диагностировать обсуждаемые ошибки.


Ну ещё можно погонять PVS-studio, они неплохо ловят похожие ошибки.
http://rsdn.org/tools/member.aspx?id=SaZ
Re[2]: Переезд на 64-битную винду
От: Тёма Россия  
Дата: 06.07.21 12:56
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, Тёма, Вы писали:


SaZ>https://rsdn.org/article/cpp/XXtraps64bit.xml
Автор(ы): Андрей Карпов
Дата: 25.04.2007
Рассмотрены программные ошибки, проявляющие себя при переносе Си++ — кода с 32-битных платформ на 64-битные платформы. Приведены примеры некорректного кода и способы его исправления. Перечислены методики и средства анализа кода, позволяющие диагностировать обсуждаемые ошибки.


SaZ>Ну ещё можно погонять PVS-studio, они неплохо ловят похожие ошибки.


Мне казалось, это относится к пересборке софта на 64 бита. Там да, граблей достаточно. У меня же вопрос про то, что софт остаётся 32-битным, но запускается теперь в 64-битной винде.
Re: Переезд на 64-битную винду
От: wildwind Россия  
Дата: 06.07.21 12:59
Оценка:
Здравствуйте, Тёма, Вы писали:

Тё>Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?


COM объекты не дергает?
Re[2]: Переезд на 64-битную винду
От: Тёма Россия  
Дата: 06.07.21 13:03
Оценка:
W>COM объекты не дергает?

Нет.
Re[2]: Переезд на 64-битную винду
От: Тёма Россия  
Дата: 06.07.21 13:05
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Никаких. Только неимоверно кривой софт может неправильно работать в такой ситуации.


Уточню на всякий, кривизну какого порядка вы имеете в виду?
Re[2]: Переезд на 64-битную винду
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.07.21 13:05
Оценка:
Здравствуйте, wildwind, Вы писали:

Тё>>Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?


W>COM объекты не дергает?


Какие могут быть проблемы с COM-объектами?
Re[3]: Переезд на 64-битную винду
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.07.21 13:11
Оценка: +4
Здравствуйте, Тёма, Вы писали:

ЕМ>>Только неимоверно кривой софт может неправильно работать в такой ситуации.


Тё>Уточню на всякий, кривизну какого порядка вы имеете в виду?


Такого, за которым кривее уже некуда. Чтобы сделать 32-разрядный софт пользовательского режима, глючащий под 64-разрядной виндой, нужно или целенаправленно и грубо нарушать самые элементарные правила и соглашения, или иметь врожденный талант ломать самые надежные вещи.

В своей практике я такого софта не встречал.
Re: Переезд на 64-битную винду
От: Alexander G Украина  
Дата: 06.07.21 15:08
Оценка:
Здравствуйте, Тёма, Вы писали:

Тё>Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?


Интеграцию с проводником (shell extensions) в этом случае необходимо собрать для x64, но если на COM ответ отрицательный, полагаю, что этого нет.
Re[4]: Переезд на 64-битную винду
От: morgot  
Дата: 06.07.21 15:51
Оценка: 3 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Такого, за которым кривее уже некуда. Чтобы сделать 32-разрядный софт пользовательского режима, глючащий под 64-разрядной виндой, нужно или целенаправленно и грубо нарушать самые элементарные правила и соглашения, или иметь врожденный талант ломать самые надежные вещи.В своей практике я такого софта не встречал.


Я встречал, точнее сам писал такое не раз. В основном проблемы с DWORD и прочей арифметикой, так как разный размер на разных архитектурах. Скажем, парсер РЕ формата криво работал.
Еще были проблемы с папкой SYSTEM32, ветками реестра (для 32 бит оно все виртуализируется на 64 битной) и так далее.
Конечно же, Вы полностью правы, все это дело описано в документации.

Автору советую эту матчасть https://pvs-studio.com/ru/blog/posts/cpp/a0004/
Re[3]: Переезд на 64-битную винду
От: morgot  
Дата: 06.07.21 15:54
Оценка: 3 (2)
Прошу прощения, не увидел сразу

Тё>Мне казалось, это относится к пересборке софта на 64 бита. Там да, граблей достаточно. У меня же вопрос про то, что софт остаётся 32-битным, но запускается теперь в 64-битной винде.


Там есть нюансы с СОМ и DLL, ну и реестр — для 32 бит своя ветка; с папками также. Посмотрите Wow64 system/registry редиректы.
Re[5]: Переезд на 64-битную винду
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.07.21 16:04
Оценка: +2 -1
Здравствуйте, morgot, Вы писали:

M>В основном проблемы с DWORD и прочей арифметикой, так как разный размер на разных архитектурах.


Читайте внимательно — здесь речь исключительно о 32-разрядном софте. Вопрос о его переделке на 64-разрядную архитектуру не ставился.

M>Еще были проблемы с папкой SYSTEM32, ветками реестра (для 32 бит оно все виртуализируется на 64 битной) и так далее.


При написании обычного, типового софта в системные зоны или не лезут вообще, или смотрят особенности в документации. Поэтому и шансы нарваться на все эти особенности — мизерные.
Re: Переезд на 64-битную винду
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 06.07.21 17:15
Оценка: 2 (1) +1
Здравствуйте, Тёма, Вы писали:

Тё>Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?


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


Тё>Софт ничего особенного не делает, принимает данные по разным каналам связи (UDP, Serial), делает расчёты и отправляет команды обратно. Плюс гуй на Qt4 и 5.


Никакого криминала не вижу
Маньяк Робокряк колесит по городу
Re[5]: Переезд на 64-битную винду
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 06.07.21 17:18
Оценка: +1
Здравствуйте, morgot, Вы писали:

ЕМ>>Такого, за которым кривее уже некуда. Чтобы сделать 32-разрядный софт пользовательского режима, глючащий под 64-разрядной виндой, нужно или целенаправленно и грубо нарушать самые элементарные правила и соглашения, или иметь врожденный талант ломать самые надежные вещи.В своей практике я такого софта не встречал.


M>Я встречал, точнее сам писал такое не раз. В основном проблемы с DWORD и прочей арифметикой, так как разный размер на разных архитектурах. Скажем, парсер РЕ формата криво работал.


Это ты как раз про выделенное. Никаких проблем не встречал. И это скорее те проблемы, когда портируешь кривое поделие с 32х бит на 64. Когда в x86 собираешь, то пофигу. Более того, обычно я собираю 4 варианта — 32/64 Release/Debug, и всё везде нормально работает. В "продакшн" обычно выпускаю 32х-битную версию, если нет какой-то специальной необходимости.
Маньяк Робокряк колесит по городу
Re[3]: Переезд на 64-битную винду
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 06.07.21 18:58
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

Тё>>>Каких подводных камней ожидать, запуская 32-битный софт на 64-битной винде?


W>>COM объекты не дергает?


ЕМ>Какие могут быть проблемы с COM-объектами?


В том что надо будет ставить 32-битную версию этих объектов.

Полно народу, который ставит 64-битные компоненты (круто же), а потом говорит, что их не видно в IDE Visual Studio
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[4]: Переезд на 64-битную винду
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.07.21 19:13
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

ЕМ>>Какие могут быть проблемы с COM-объектами?


КД>В том что надо будет ставить 32-битную версию этих объектов.


Вменяемый (который не 64-bit only) софт их ставит.

КД>Полно народу, который ставит 64-битные компоненты (круто же), а потом говорит, что их не видно в IDE Visual Studio


Это или компоненты, распространяемые отдельно для ручной установки (и тогда каждый сам себе злобный буратина), или очень кривые руки разработчиков.
Re[4]: Переезд на 64-битную винду
От: ononim  
Дата: 07.07.21 10:29
Оценка: -1
ЕМ>Такого, за которым кривее уже некуда. Чтобы сделать 32-разрядный софт пользовательского режима, глючащий под 64-разрядной виндой, нужно или целенаправленно и грубо нарушать самые элементарные правила и соглашения, или иметь врожденный талант ломать самые надежные вещи.
Еще можно юзать (притащив с собой) win16 или досовские утилитки
Как много веселых ребят, и все делают велосипед...
Re[5]: Переезд на 64-битную винду
От: удусекшл  
Дата: 07.07.21 10:38
Оценка:
Здравствуйте, ononim, Вы писали:

ЕМ>>Такого, за которым кривее уже некуда. Чтобы сделать 32-разрядный софт пользовательского режима, глючащий под 64-разрядной виндой, нужно или целенаправленно и грубо нарушать самые элементарные правила и соглашения, или иметь врожденный талант ломать самые надежные вещи.

O>Еще можно юзать (притащив с собой) win16 или досовские утилитки

Да, вот это по x64 не работает. Но можно попробовать в досбокс
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.