Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Обнаружил, что отладочная и релизная версия одной программы (откомпилирована в VS2015) возвращают различающиеся текстовые представления double 0.0.
У меня не воспроизводится. Всегда 17 символов.
/MT,/MTd или /MD,/MDd ?
Вообще стоит из VS2019 Help->Send Feedback->Report a problem, потому что баг
Русский военный корабль идёт ко дну!
Re[2]: [VS] vsnprintf по разному обрабатывает 0.0 в Release и Debug сборках
Здравствуйте, Alexander G, Вы писали:
КД>>Обнаружил, что отладочная и релизная версия одной программы (откомпилирована в VS2015) возвращают различающиеся текстовые представления double 0.0.
AG>У меня не воспроизводится. Всегда 17 символов.
AG>/MT,/MTd или /MD,/MDd ?
/MD,/MDd
AG>Вообще стоит из VS2019 Help->Send Feedback->Report a problem, потому что баг
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: [VS] vsnprintf по разному обрабатывает 0.0 в Release и Debug сборках
Здравствуйте, Alexander G, Вы писали: AG>Здравствуйте, Коваленко Дмитрий, Вы писали: КД>>Обнаружил, что отладочная и релизная версия одной программы (откомпилирована в VS2015) возвращают различающиеся текстовые представления double 0.0. AG>У меня не воспроизводится. Всегда 17 символов.
В 2015-ой?
Странно.
Я добавил конфигурации со статической библиотекой — так там всегда 18 символов (как в отладочной с библиотекой в DLL).
Немного доработал демку, чтобы было понятно где сколько символов
Здравствуйте, Alexander G, Вы писали:
КД>>Обнаружил, что отладочная и релизная версия одной программы (откомпилирована в VS2015) возвращают различающиеся текстовые представления double 0.0.
AG>У меня не воспроизводится. Всегда 17 символов.
AG>/MT,/MTd или /MD,/MDd ?
AG>Вообще стоит из VS2019 Help->Send Feedback->Report a problem, потому что баг
Я им написал.
Возможно проблема в разных версиях ucrtbase.dll / ucrtbased.dll
ucrtbased.dll — 10.0.18362.1
ucrtbase.dll — 10.0.19041.789
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Возможно проблема в разных версиях ucrtbase.dll / ucrtbased.dll
КД>ucrtbased.dll — 10.0.18362.1
КД>ucrtbase.dll — 10.0.19041.789
Я сегодня до упора обновил 2019-ые (CE и Preview) — не помогло.
Нашел у себя кучу ucrtbased.dll разных версий. Копирую их в каталог с exe — она загружается, но на результат не влияет. Все равно выводится 18 символов.
С релизной ucrtbase.dll не прокатывает — она всегда грузится из Windows\System32.
Отладчик говорит, что vsnprintf делегирует вызов в ucrtbased.dll!__stdio_common_vsprintf
Dependency Walker говорит, что __stdio_common_vsprintf находится в api-ms-win-crt-stdio-l1-1-0.dll
В целом, понятно, что вообще нихрен не понятно Куда копать-то?
----
Может кто подскажет — где взять правильную ucrtbased.dll? Я так понимаю нужна 10.0.19041.789.
MS говорит, что они будут Investigate эту проблему, но надежд на них мало
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: [VS] vsnprintf по разному обрабатывает 0.0 в Release
Здравствуйте, Alexander G, Вы писали:
AG>Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>>Обнаружил, что отладочная и релизная версия одной программы (откомпилирована в VS2015) возвращают различающиеся текстовые представления double 0.0.
AG>У меня не воспроизводится. Всегда 17 символов.
Если не сложно, выложи куда нибудь свои ucrtbased.dll (32 и 64 бита) из каталогов C:\Windows\SysWOW64 и C:\Windows\System32.
MS говорит — обновитесь, мы все исправили.
Но у меня все обновлено до упора.
Возможно кто-то заменил crtbased.dll на старую версию, а VS этого не замечает
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
AG>>У меня не воспроизводится. Всегда 17 символов.
КД>Если не сложно, выложу куда нибудь свои ucrtbased.dll (32 и 64 бита) из каталогов C:\Windows\SysWOW64 и C:\Windows\System32.