SASGIS - SAS.Планета
View Issue Details
0003883SAS.Планета[All Projects] Хотелкаpublic20-12-2023 07:4711-11-2024 14:24
zed 
zed 
normalminorhave not tried
resolvedfixed 
230909 
241111241111 
0003883: Использовать актуальные dll при запуске на Windows 7 и выше
При обновлении dll всё чаще начинает возникать ситуация, что они уже не поддерживают WinXP и чтобы не потерять поддержку этой версии приходится использовать старые dll.

Предлагаю сделать разделение версий для WinXP и новее.

Новые dll предлагаю размещать в папке lib32 и lib64 (для x64, когда появится поддержка со стороны SAS). Старые, совместимые dll, переместить в папку libxp.

Далее, при запуске программы использовать функцию SetDllDirectory для добавления libxp/lib32/lib64 для поиска нужных dll.

Т.о. можно сделать бесшовный переход на новые dll на какое-от время (пока у них не начнёт меняться внешний API).
No tags attached.
related to 0003581new  Сборка 64-х битной версии SAS 
Issue History
20-12-2023 07:47zedNew Issue
20-12-2023 07:47zedStatusnew => assigned
20-12-2023 07:47zedAssigned To => zed
20-12-2023 07:50zedNote Added: 0020441
20-12-2023 07:52zedRelationship addedrelated to 0003581
20-12-2023 15:23zedNote Added: 0020442
20-12-2023 15:27zedDescription Updatedbug_revision_view_page.php?rev_id=7857#r7857
23-12-2023 14:54zedNote Added: 0020443
25-12-2023 10:38zedNote Added: 0020444
25-12-2023 10:38zedStatusassigned => resolved
25-12-2023 10:38zedFixed in Version => 24xxxx
25-12-2023 10:38zedResolutionopen => fixed
11-11-2024 14:18zedTarget Version24xxxx => 241111
11-11-2024 14:24zedFixed in Version24xxxx => 241111

Notes
(0020441)
zed   
20-12-2023 07:50   
Да, забыл указать, что новые dll (в большинстве своём), можно взять из проекта mingw-w64 и самостоятельно их собирать не нужно. Особенно актуально это будет для 64-х битной версии.
(0020442)
zed   
20-12-2023 15:23   
Со статически слинкованным библиотеками такий финт не получится (они загружаются до того, как процесс начинает выполняться). Тут либо старт через внешнюю запускалку и CreateProcss, либо переделывать все либы на динамическую линковку. У FreeImage там у около 250 функций надо объявление изменить, чтобы сделать её динамической. С остальными dll особых трудностей нету (большинство и так динамически грузятся).
(0020443)
zed   
23-12-2023 14:54   
С FreeImage всё оказалось не так страшно - спасибо регэкспам и notepad++.
(0020444)
zed   
25-12-2023 10:38   
Сделано. Наборы библиотек буду выкладывать тут: https://github.com/sasgis/sas.planet.bin/releases

Из репо с релизами все dll надо будет удалить (скрипты сборки ночных версий и релизов также переделаны под новые наборы).