runerror after installing new version 1.6.0

Hi,

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.

Hmm. I noticed this was still in the build options:

/NOD:MFC80.LIB

Along with the /NOD:MFC90.LIB reference. Maybe that could be what’s causing the dependency?

Then again I have no clue what it means, I don’t really have much experience on windows (proud linux user here).

Hmmm…

Searched MSDN on this and found it after a few tries. What is happening here is that the /NOD option explicitly links in an import library, in this case the MFC80.LIB (or MFC90.LIB in case of the second example). You definitely need to drop the MFC80.LIB since it will cause a reference to the runtime version of the VC++ 2005 files.

The question that puzzles me is why it is needed to import the Microsoft Foundation Library at all? To my best knowledge you need them if you create a windows program with a windows gui.

Having read posts, I have install vcredist_x86-sp1 which was in \bin from version 1.5.4 (It is 2005, and before I tried 2008 which hasn’t effect) - after that, 1.6.х began to work normally. )

Thanks )

(BTW 2005 without sp1 too does not work)

Can anyone suffering from this problem maybe send me a Dependency Walker image (.dwi) file of the troubling dll or exe?

Hi,

Pleased to see the issue hasn’t been forgotten. I have a .dwi and a jpg-dump of dependency walker displaying a big error box. How can I upload them to you?

:smiley:

Please e-mail them to me, by clicking the “email” button below this post.

For the record, after a lot of investigation I finally tracked down the cause of the problem.
I’ve just checked a fix to makepanda on CVS.