Рубрика «visual c++»
Вторая жизнь Virtual Floppy Drive
2020-10-04 в 11:24, admin, рубрики: abandonware, C, MSVC, open source, reactos, SourceForge, visual c++, Visual Studio, виртуализация, переносимость, разработка под windowsКогда-то давно у меня была коллекция старинных версий Windows в виртуалках, и для переноса файлов между хост-машиной и этими виртуалками приходилось использовать дискету, потому что поддержка shared folders появилась только в Windows for Workgroups.
Перенос файлов через дискету был медленным и шумным, и моему восторгу не было предела, когда я нашёл драйвер Virtual Floppy Drive, позволяющий создать «виртуальный флопповод» и подключить его в VM как обычный. К сожалению, интерес автора к своему проекту угас в 2005, а в 2010 его сайт и емейл перестали существовать. С тех пор в мире Windows успело произойти много перемен:
- Повсеместно стала использоваться 64-битная ОС, в которую невозможно загрузить 32-битный драйвер, скомпилированный в 2005;
- Windows начиная с Vista SP1 стала требовать для загрузки драйверов либо цифровую подпись, либо муторные манипуляции, требующие перезагрузку системы;
- Проект, написанный в Visual C++ 6, не собирается в современных версиях Visual Studio после автоматической конвертации.
Печальная судьба спецификаторов формата функции printf для символов Юникода в Visual C++
2019-09-10 в 10:43, admin, рубрики: C, c++, printf, Unicode, visual c++, Visual Studio, Блог компании PVS-Studio, история, переносимость кода, разработка под windows, СиПоддержка Юникода в Windows появилась раньше, чем в большинстве остальных операционных систем. Из-за этого многие проблемы, связанные с представлением символов, в Windows решались не так, как в других системах, разработчики которых отложили внедрение нового стандарта до лучших времён [1]. Самый показательный пример: в Windows для представления символов Юникода используется кодировка UCS-2. Она была рекомендована Консорциумом Юникода, поскольку версия 1.0 поддерживала только 65 536 символов [2]. Пять лет спустя Консорциум передумал, но к тому времени менять что-то в Windows было уже поздно, так как на рынок уже были выпущены системы Win32s, Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 и Windows 95 — все они использовали кодировку UCS-2 [3].
Но сегодня мы поговорим о строках форматирования функции printf.
Читать полностью »
Опасность использования multi-character-констант
2019-06-26 в 8:59, admin, рубрики: c++, clang, gcc, pvs-studio, visual c++, Visual Studio, Блог компании PVS-Studio, разработка под windowsВо время анализа кода, PVS-Studio выполняет анализ потока данных и оперирует значениями переменных. Значения берутся из констант или выводятся из условных выражений. Мы называем их виртуальными значениями. Недавно мы улучшали их для работы с multi-character-константами и это стало поводом для создания нового диагностического правила.
Введение
Multi-character-литерал является implementation-defined, поэтому различные компиляторы могут кодировать эти литералы по-разному. К примеру, GCC и Clang задают значение, основываясь на порядке символов в литерале, тогда как MSVC перемещает их в зависимости от типа символа (обычный или escape).
Читать полностью »
How the CSS markup fragment broke the C++ compiler
2019-03-27 в 6:18, admin, рубрики: C, c++, microsoft, MSVC, visual c++, Visual Studio, Блог компании PVS-Studio, разработка под windows
Static analysis methodology involves various technologies. One of them is preprocessing files right before analyzing them. Preprocessed files are created by the compiler that runs in a special working mode. Unfortunately, our long-standing experience of developing a static analyzer shows that this mode is not great for testing. In this note, I'll give the example of a fresh bug in the C++ compiler from Microsoft.
Читать полностью »
Как фрагмент CSS разметки сломал C++ компилятор
2019-03-27 в 6:14, admin, рубрики: C, c++, microsoft, MSVC, visual c++, Visual Studio, Блог компании PVS-Studio, разработка под windows
В методологии статического анализа применяются разные технологии. Одна из них — препроцессирование файлов непосредственно перед их анализом. Препроцессированные файлы создаёт компилятор, запускаемый в специальном режиме работы. К сожалению, этот режим не очень хорошо тестируется, как показывает наш многолетний опыт разработки статического анализатора кода. В этой заметке приведу пример свеженайденного бага в С++ компиляторе от Microsoft.
Читать полностью »
Использование модулей C++ в Visual Studio 2017
2017-05-12 в 8:01, admin, рубрики: c++, visual c++, Visual Studio, visual studio 2017, VS2017, Блог компании PVS-Studio, разработка под windowsЧто нового?
Команда Visual C++ рада сообщить, что в Visual Studio 2017 было существенно улучшено качество реализации модулей C++ согласно технической спецификации; также мы добавили возможность подключать Стандартную Библиотеку C++ через интерфейсы модулей. Эти интерфейсы, как и поддержка модулей компилятором, являются экспериментальной разработкой и будут развиваться в соответствии с процессом стандартизации.
Читать полностью »
Как используя PVS-Studio можно улучшить Visual C++ 2017 Libraries
2017-05-02 в 12:19, admin, рубрики: bugs, C, c/c++, c++, dev tools, MFC, pvs-studio, visual c++, Visual Studio, visual studio 2017, VS2017, библиотеки, Блог компании PVS-Studio, Компиляторы, ошибки, ошибки в коде, разработка под windows, Си, статический анализ кодаНазвание статьи намекает разработчикам Visual Studio, что они могут получать пользу от использования статического анализатора кода PVS-Studio. В статье приводятся результаты анализа библиотек, входящих в состав недавно выпущенной версии Visual C++ 2017, и даются рекомендации по улучшению и устранению ошибок. Приглашаю читателей узнать, как разработчики Visual C++ Libraries отстреливают ноги: будет интересно и познавательно.
Читать полностью »