===[ Программизм / Windows 95 ]=== #post-id: 7771-06-25 #original-date: 4.11.2021 Thu #original-time: 6:25 AM #original-day: 7771 #original-host: WinXP Home SP3 (Build 2600) Забавное. Есть функция ExpandEnvironmentStrings(), которая берёт строку и разворачивает в ней переменные окружения. Работает она типично: сначала запускаем, передавая NULL вместо приёмного буфера и 0 в качестве длины этого буфера, получаем нужный размер буфера и запускаем второй раз с подготовленным приёмным буфером. Некоторые функции, работающие по этому принципу, NULL не хотят, но там можно просто пустой буфер передать (хоть указатель на int с нуликом). Windows 95 возмутилась и тому, и тому варианту, GetLastError() указывает на ошибку в параметрах, хотя более поздние версии работают нормально. Выяснилось, что нулевой длины буфер функция не принимает, поэтому пришлось первый вызов делать с буфером длиной два символа, и тогда всё заработало, как надо.