I’ve found out what exactly is wrong with the libpanda.dll. It references the old vc++ 2005 runtime files together with the new vc++ 2008 runtime files. You can see this by extracting the side-by-side configuration information. Thanks to the article of OJ about resolving side-by-side configuration issues (at buffered.io) I was able to do so. It’s actually suprisingly simple. The side-by-side configuration data is stored as a xml resource inside the dll. If you open the dll in any editor (text
or hex) that doesn’t choke on the binary you can search for “<assembly”. You then find the embedded xml data. For a properly working dll (I used libp3pystub.dll as a reference), you get the following xml:
Now for the old libpanda.dll from version 1.5.4, wich is working fine under windows xp, sp2, you get the following xml.
In both cases the requested depency is available on the system in the Panda\bin folder. Now for the new version of libpanda.dll (that is version 1.6.0, 1.6.1 and 1.6.2), when you extract the embedded side-by-side
configuration data, you get the following xml:
Note that suddenly there is a VC80.CRT dependency. But this dependency is not available on a clean machine running windows xp, sp2. Also the same dependency is referenced twice with different version numbers. I tried to copy the VC80.CRT manifest from the 1.5.4. version to the Panda\bin folder, including the msvc80 dll’s however this fails. Probably due to the fact that this is only the version 8.0.50727.762.
Upon scanning the MSDN library I came across an article about troubleshooting VC++ side-by-side distribution. In it was a user contribution that stated that the Visual Studio 2008 environment had a
bug that messes up the manifest configuration. You might check out that article.
Hope this provides enough info to solve the issue in the next release.
Looking forward to it.