Thursday, September 3, 2009

NetScanTools Pro and the effects of KB971090

In late July Microsoft pushed out a fix for an Visual C++ 2005 SP1 ATL problem (see our August 4 blog entry) that broke our demo at a critical time just when we were sponsoring a webinar. I thought I had it fixed by recompiling our main executable and using the new vcredist_x86.exe to bring the SxS linkage up from 8.0.50727.762 to 8.0.50727.4053. Well not quite.

It wasn't until NetScanTools Pro 10.93 was released for a few days that I realized the full extent of the problem. We had one customer who said that he couldn't start the program. It was the famously unhelpful XP message "This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem." This means that the Side by Side (SxS) system DLL linkage is wrong. The stange part was that this customer did have the 4053 DLLs installed.

I tracked it down to a problem in the nstpro.exe manifest that showed both 762 and 4053 required to be loaded. Of course this worked fine on all our computers and the majority of our customers, but not this one customer.

The fix was to recompile ALL executables, DLLs and custom libraries imported by our executables. One or more of our libraries was compiled using the 762 linkage, so when I compiled the main program, a manifest was generated asking for both.

Again, Microsoft should have warned of the full effects of this change to those using the MFC and runtime libraries when a SxS DLL linked project was opened for the first time in the Visual C++ 2005 compiler.

So now as a result of this we have released NetScanTools Pro 10.93.1 on September 1. This only affects the installed version and the demo. It does not affect the USB version because it uses statically linked libraries.

No comments: