Visual Lint 8.0.10.355 has been released

Products, the Universe and Everything from Products, the Universe and Everything

Visual Lint 8.0.10.355 has now been released.

This is a maintenance update for Visual Lint 8.0, and includes the following changes:

  • The VisualLintConsole command line parser now accepts spaces between the name and value of a command line switch. As a result, switches of the form. /switchname = <value> are now accepted, whereas previously only /switchname=<value> would work.

  • Entries in the file list within manually created custom project (.vlproj) files can now use wildcards. Note however that if the project file is subsequently edited by VisualLintGui, the file list will be expanded to explicitly reflect the files actually found. As such, this feature is intended for use with hand-created .vlproj files (which are really just .ini files, and as such lend themselves nicely to hand-editing).

  • Fixed a bug opening analysis tool manual PDFs located on UNC drives.

  • Fixed a bug in VisualLintGui which could cause some file save operations to fail.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2022.lnt to support Visual Studio 2022 v17.2.6.

  • Updated the PC-lint Plus compiler indirect fileco-rb-vs2019.lnt to support Visual Studio 2019 v16.11.17.

  • Updated the PC-lint Plus Boost library indirect file lib-rb-boost.lnt.

  • Removed nonfunctional "Print" menu commands from VisualLintGui.

  • Updates to various help topics.

Download Visual Lint 8.0.10.355

Visual Lint 8.0.9.353 has been released

Products, the Universe and Everything from Products, the Universe and Everything

Visual Lint 8.0.9.353 has now been released.

This is a maintenance update for Visual Lint 8.0, and includes the following changes:

  • Added support for Codegear C++ Builder 11 Alexandria.

  • Fixed a crash in the Visual Studio plugin when a file was opened in Visual Studio 2022 v17.2.0 Preview. The crash was apparently caused by a change or regression in the VS2022 implementation of EnvDTE::DocumentEvents::DocumentOpening().

  • When analysing Visual Studio projects the appropriate -std and -m32 or -m64 switches are now automatically added to generated Clang-Tidy command lines.

  • Fixed a bug in the Clang-Tidy analysis results parser which caused issues containing multiple square brackets to be parsed incorrectly.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2022.lnt to support Visual Studio 2022 v17.1.6.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2019.lnt to support Visual Studio 2019 v16.11.13.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2017.lnt to support Visual Studio 2017 v15.9.47.

  • Updated the PC-lint Plus compiler indirect files co-rb-vs2017.lnt, co-rb-vs2019.lnt and co-rb-vs2022.lnt to limit the value of _MSVC_LANG to 201703L. This is necessary as the version of the Clang front-end used by PC-lint Plus 1.4.x and earlier does not include C++ 20 compiler intrinsics.

  • Updated the installer to terminate any instances of mspdbsrv.exe (the Visual Studio program database symbol server) before installing the Visual Studio plugin to VS2017/19/22.

  • Updated the text on the "Analysis Tools" page of the installer.

  • Updated the readme and help documentation to reflect the fact that Windows 11 is now supported.

Download Visual Lint 8.0.9.353

EnvDTE::DocumentEvents crash in VS2022 v17.1 Preview 2

Products, the Universe and Everything from Products, the Universe and Everything

Heads-up for anyone writing Visual Studio extensions that it looks like EnvDTE::DocumentEvents::DocumentOpening() has a regression or change in behaviour that can cause a crash freeing a BSTR if you use it in VS2022 v17.1 Preview 2 onwards.

The interface in question is in the legacy automation interface once used by macros/addins and is now marked as "Microsoft internal use only" so I doubt this will affect anyone writing new code. Still, it's noteworthy - esp as the crash can manifest as a hang while opening a solution which makes it look like the IDE installation is corrupt.

Visual Lint 8.0.8.351 has been released

Products, the Universe and Everything from Products, the Universe and Everything

Visual Lint 8.0.8.351 has now been released.

This is a maintenance update for Visual Lint 8.0, and includes the following changes:

  • Fixed a bug in the handling of preprocessor symbol properties in Visual Studio projects.

  • VisualLintGui will now open files dropped on its main window.

  • Updated the PC-lint Plus compiler indirect files co-rb-vs2019.lnt and co-rb-vs2022.lnt to filter out errors in <xutility> when analysing some Visual Studio 2019 and 2022 projects.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2022.lnt to support Visual Studio 2022 v17.0.5.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2019.lnt to support Visual Studio 2019 v16.11.9.

  • Minor updates to the online help.

Download Visual Lint 8.0.8.351

Visual Lint 8.0.7.349 has been released

Products, the Universe and Everything from Products, the Universe and Everything

Visual Lint 8.0.7.349 has now been released.

This is a maintenance update for Visual Lint 8.0, and includes the following changes:

  • The Visual C++ project (.vcxproj) file parser now defines the value of _MSVC_LANGappropriately if /std:c++14, /std:c++17, /std:c++20 or /std:c++latest are used within a Visual Studio 2015, 2017, 2019 or 2022 project configuration.

  • Fixed a bug in the Clang-Tidy analysis results parser which could cause some "note" issues to be hidden.

  • Fixed a bug in the handling of UTF-8 files in VisualLintGui.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2022.lnt to support Visual Studio 2022 v17.0.4.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2019.lnt to support Visual Studio 2019 v16.11.8.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2017.lnt to support Visual Studio 2017 v15.9.42.

  • Updated the PC-lint Plus library indirect file lib-rb-atl.lnt.

  • Updated the help topic for the Clang-Tidy Analysis Configuration Dialog "General" page.

Download Visual Lint 8.0.7.349

Visual Lint and log4j (TL;DR: we don’t use it)

Products, the Universe and Everything from Products, the Universe and Everything

A good question from a customer given a bunch of headlines about security holes in the log4j logging library:

Triggered by the recent log4j vulnerability our organisation is asking all our software vendors if their software is affected by it - and if so by when a patch will be provided. May I ask for your confirmation that Visual Lint is not affected by this exploit?

I suppose that Visual Lint is Java free and thus has no problem with it. Thanks a lot for your answer!

Hopefully our answer will prove reassuring:

Visual Lint is written almost entirely in native C++ (more specifically, it's written in C++ 14). There is only one Java project in the entire codebase - the project which implements the Eclipse plugin (to our knowledge, Eclipse plugins can only be implemented in Java).

However, that project is just a thin Java wrapper around a native DLL - and it doesn't use log4j at all.

So, you're correct. Visual Lint (and indeed all our products and infrastructure) are 100% log4j free.

So your organisation can rest easy in this case.

Visual Lint 8.0.6.347 – a Clang download here, a CppCheck download there….

Products, the Universe and Everything from Products, the Universe and Everything

Visual Lint 8.0.6.347 has now been released.

The most notable changes in this build relate to configuration - in particular, the user interface now embeds links to the installers for open source analysis tools, which should make configuring Visual Lint much easier:

Configuration Wizard pageThe user interface now includes download links for selected open source analysis tools

This change was prompted by the fact that the Clang-Tidy installers are quite hard to find on the LLVM Download page, but is also applicable to (for example) CppCheck.

Visual Lint 8.0.6.347 is a recommended maintenance update for Visual Lint 8.0, and includes the following changes:

  • Added direct download links for open source analysis tools such as Clang-Tidy and CppCheck to the Configuration Wizard, Options Dialog and Active Analysis Tool Dialog.

  • When the installation folder of an analysis tool is set in the Configuration Wizard for a particular IDE/project type, the path will now be used as the default for all project types. It can of course still be overridden on a project type by project type (or solution/workspace/project by solution/workspace/project) basis as required.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2022.lnt to support the public release of Visual Studio 2022 v17.0.0.

  • Updated the Clang-Tidy message database to reflect changes in Clang-Tidy 13.0.0.

  • Corrected the "Status" text in the "Active Analysis Tool" dialog.

Download Visual Lint 8.0.6.347

Visual Lint 8.0.5.346 adds support for Visual Studio 2022

Products, the Universe and Everything from Products, the Universe and Everything

Visual Lint 8.0.5.346 has now been released. This a recommended maintenance update for Visual Lint 8.0, and adds support for Visual Studio 2022 Preview:

Visual Lint 8.0.5.346 running within Visual Studio 2022 Preview 5.0Visual Lint 8.0.5.346 running within Visual Studio 2022 Preview 5.0

The following changes are included:

  • The Visual Studio plugin is now compatible with Visual Studio 2022 Preview.

  • The Visual Lint installer now includes dedicated VSIX extensions for Visual Studio 2017 (VisualLintPlugIn_vs2017.vsix), Visual Studio 2019 (VisualLintPlugIn_vs2019.vsix) and Visual Studio 2022 (VisualLintPlugIn_vs2022.vsix).

  • If makefile output is read while loading a C/C++ project, it is now used to determine which files will be built.

  • The Project Properties Dialog now includes a dedicated field for built-in (i.e. compiler defined) preprocessor definitions. Note that these include those inferred by other project settings, e.g. the Visual C++ "Runtime Library" property (compiler switches /MD[d], /MLd and /MT[d]) which infer _DEBUG/NDEBUG, _MT and _DLL.

  • Built-in (i.e. compiler defined) preprocessor symbols are now written separately in generated PC-lint/PC-lint Plus project indirect files from those specified directly.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2022.lnt to support Visual Studio 2022 v17.0.0 Preview 4.1.

  • Updated the PC-lint Plus compiler indirect file co-rb-vs2019.lnt to support Visual Studio 2019 v16.11.4.

  • Updated the VisualLintConsole help screen to reflect support for Visual Studio 2022 project and solution files.

  • Updated the installer to clarify that the "Remove Visual Lint commands from Visual Studio" option only applies to Visual Studio 2002-2008.

Download Visual Lint 8.0.5.346

ResOrg 2.0.10.31 adds support for Visual Studio 2022

Products, the Universe and Everything from Products, the Universe and Everything

ResOrg 2.0.10.31 has now been released. This a recommended maintenance update for ResOrg 2.0, and adds support for Visual Studio 2022 Preview:

ResOrg 2.0.10.31 running within Visual Studio 2022 Preview 4.1ResOrg 2.0.10.31 running within Visual Studio 2022 Preview 4.1

The following changes are included in this build:

  • Added support for Visual Studio 2022 Preview.

  • The ResOrg installer now includes dedicated VSIX extensions for Visual Studio 2017 (ResOrgVsPlugIn_vs2017.vsix), Visual Studio 2019 (ResOrgVsPlugIn_vs2019.vsix) and Visual Studio 2022 (ResOrgVsPlugIn_vs2022.vsix).

  • The Visual Studio plug-in now uses a fully VSPackage based implementation when hosted in Visual Studio 2010, 2012 or 2013 (Visual Studio 2008 and earlier are still supported via an add-in).

  • The installer now checks if Visual Studio or ResOrg are running before allowing the installation to proceed.

  • Fixed a bug in the generation of HTML reports.

  • The AboutBox now shows the name of the host development environment (if any) and the platform (x86 or x64).

  • Updated the website address shown on the Aboutbox, in reports etc. from http://www.riverblade.co.uk to .

Download ResOrg 2.0.10.31

The Woes of Windows Smartscreen

Products, the Universe and Everything from Products, the Universe and Everything

Windows Smartscreen is a great idea, but if you develop downloadable software for Windows it can sometimes be incredibly frustrating.

That has certainly been our experience this year, as Windows has displayed the following warning when running every build we have released since we renewed our code signing certificate:

Windows SmartscreenEek!

What this warning means is that Smartscreen does not recognise the executable (fair enough, as the chances are we had only just built it when it was downloaded), and does not yet trust the code signing certificate (we know that an EV certificate would help with this, but only at the cost of a loss of flexibility in the build process).

To the end-user (and yes, I include many developers in that) this warning must be offputting, to say the least. The lack of a "Run Anyway" button just compounds that. To see that, you have to click on the "More info" link to reveal it, as well as the name of the executable file and publisher:

Windows SmartscreenIf you click on the "More info" link you will see some useful information and a "Run anyway" button.

The warning usually disappears after a few days as customers download and install the update, but this time it has been different and we have been pulling our hair out over this for months.

More than one build has been submitted to Microsoft for analysis, but we never had any luck until last week, when we received this feedback:

Submission feedbackSuccess! (for this particular build, at least)

We do not know exactly how the internal logic Microsoft use to trigger Smartscreen warnings has changed in recent months, but we suspect it has in some way.

Coincidentally, at the same time as we submitted this file for analysis we also uploaded the same executable directly to the Visual Studio Marketplace, rather than (as previously) linking to the product page. Maybe that also helped - who knows?

Regardless, it's welcome as it means that Visual Lint 8.0.4.342 no longer triggers the Smartscreen warning, and hopefully as the code signing certificate builds reputation other builds will cease to do so too.

At least, we hope so.