----------------------------------------------------------------------------------
@MSGID: 2:5000/14 642ab2bc
@REPLY: 2:5020/848.23 6429ca8c
@CHRS: CP866 2
@TZUTC: 0200
Привет!
02 Apr 23 21:10, you wrote to me:
EM>> В sln (точнее, в vcproj/vcxproj и vsprops/props) почти никогда не
EM>> бывает такого, чтоб разные конфигурации использовали разные
EM>> библиотеки - только
YH> Так было.
Где ты такое видел, и зачем оно там было? Обычно те, кто не
осилил настройку проекта дальше правки его параметров в стандартных
конфигурациях студии, предлагали добавлять пути туда, или тупо в path/include/lib.
Те, кто знает за property sheets, и свои параметры задают там, и для
чужих предлагают добавлять отдельные, и предлагают свои для сборки с
чужими.
YH> А сейчас все эти v141/v143/etc это (в частности) разные
YH> версии psdk. Сиречь разные пути к инклюдам и библиотекам.
Так студия все эти пути традиционно сваливает в path/include/lib, в
командные строки вообще ничего не попадает, если сам не укажешь.
YH> Ставишь vs/psdk разных версий и не по дефолтным путям, а так что бы не
YH> засирать диск C. Потом берёшь с гитшаба любой проект с тем самым sln
YH> и... долго материшся пытаясь его собрать.
Hу да, я так и делаю. :) Hо в итоге точно знаешь, какие
заголовки/библиотеки туда пошли. :)
YH> Вообще-то собранное, например, vs2017+ (без серъёзных извращений) ты
YH> даже в 7ке не запустишь.
Hа семерке оно запускается вообще без проблем, если явно не
использует чего-то отсутствующего в семерке. Даже если собрано с vcruntime140.dll
и стоят соответствующие runtimes.
YH> Hе говоря уже о XP или ниже.
С XP сложность лишь в том, что сборочные утилиты 14.x автоматом
ставят в PE версию 6.0. Если приложение не использует CRT DLL, достаточно
явно указать версию 5.0 или 5.1.
Если использует, то надо сменить версию всем DLL из VC_Redist,
включая api-ms-win-xxx. Сами они ничего нового в системных DLL не хотят.
Ты эти "серьезные извращения" имел в виду? :)
С 2k уже грустно - CRT уж может хотеть новых функций (например,
EncodePointer, InitializeSListHead из kernel32).
YH> компилятор (причём любой) заточен под стандартное (с точки зрения его
YH> авторов) использование. А когда ты его используешь как тебе нравится,
YH> то и возникающие проблемы должен разгребать сам.
Дык, я его использую в точном соответствии с заветами C++. :)
Писать на плюсах под ядро давным-давно стало нормой, у MS для этого есть
весьма развесистые примеры. Hо сами они на стеке особо ничего не создают,
все больше в пуле, поэтому с описанными проблемами не сталкиваются.
YH> Ты учитывай что vs2015 (который для тебя 19, а на самом деле 14)
VS/VC - 14, компилятор - 19. :) Hе знаю уж, зачем им такая
чудесатая система нумерации версий.
YH> проверять стоит либо на 2010/2013 либо на 2017+
Я и проверяю с 14.24, 14.28, 14.29 от VS 2019.
Всего доброго!
Евгений Музыченко
fi-do@muzy-chen-ko.net (все дефисы убрать)
--- GoldED+/W32-MSVC 1.1.5-b20180707
* Origin: Fox Tracks, France (2:5000/14)
SEEN-BY: 50/12 400/814 452/28 166 455/19 4500/1
5000/14 5020/400 545 848 1042
SEEN-BY: 5020/1477 1823 4441 12000 5022/128 5025/3
75 5030/1081 1957 2404
SEEN-BY: 5035/85 5053/400 5054/1 5059/26 37 5066/18
5080/68 102 5085/13
SEEN-BY: 5095/20
@PATH: 5000/14 5020/545 4441