Wireshark-dev: [Wireshark-dev] News from the msvcr dll hell ... and a possible solution!
Hi!
On a computer without any Visual Studio version installed I tested my
private Wireshark build compiled with Visual Studio 2005 Express Edition
and with it's own installer. As usual, this installer will call the
vcredist_x86.exe, so it installs the msvcr80.dll for the 2005 studio.
However, I was facing the problem of Wireshark not loading (probably
because of missing dlls).
So I digged deeper into that problem, looking for a program to display
the required dlls. I've found:
http://www.dependencywalker.com/
that displays the dlls, so I looked at the problematic computer.
I found out that the problematic dependency chain was:
libwireshark.dll
lua5.1.dll
msvcr90.dll
Strangely, the dependency walker was finding a msvcr90.dll in "program
files\image magick". I don't know if Windows will really use this
totally unrelated dll or if this is a bug in dependency walker. Maybe
that's the reason, that we get different error messages on different
omputers - because different additional programs are installed?!?
Anyway, the msvcr90.dll in image magick was the older version (without
SP1) of the two possible, but lua seems to need the newer one[1].
After installing vcredist_x86.exe for MSVC2008 SP1 [2], Wireshark
started without a problem.
First of all, I'm glad that I've found the cause of the problem :-)
So a solution for MSVC 2005 (EE) devels like me:
1) Install SP1 for your Visual Studio - a good idea anyway
2) Add vcredist_x86.exe / or the corresponding msvcr files for 2008 SP1
to the installer, even if developing under 2005
I guess it's a good idea to integrate 2) into the setup / build process ...
Regards, ULFL
[1]
http://www.wireshark.org/docs/wsdg_html_chunked/ChToolsMSChain.html#id4715151
[2]
http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en