Wireshark-dev: Re: [Wireshark-dev] Windows build for VS 2008
From: Graham Bloice <graham.bloice@xxxxxxxxxxxxx>
Date: Fri, 25 Jul 2008 16:50:50 +0100
Gerald Combs wrote:
Nathan Jennings wrote:
  
Trying to start a capture gets me the generic Windows error dialog where 
I can click "Debug" and it takes me into the VS debugger and drops me 
into "dbghook.c" with the following in the output window:

Microsoft Visual Studio C Runtime Library has detected a fatal error in 
wireshark.exe.

The stack frame seems to be in "msvcr90.dll".

Right after the debug hook call, if I step through it, the next call is 
to a Watson handler and then TerminateProcess. :-(

Just curious if anyone was looking at this or had put any time into it. 
I have a feeling this is a large "can of worms" (cross CRT-version calls?).

I know... I should probably just install VS 2005EE. ;-)
    
According to
http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/
it's possible to use newer versions of Visual C++ to link against the "classic"
msvcrt.dll instead of msvcr[789]?.dll. This might let us get rid of some of the
complexity in the current Windows build environment and let us use a newer
compiler for the official builds.
_______________________________________________

  
Hmm.  The article seems to imply some other complexity as the debug CRT isn't available so you have to use the one for your compiler toolchain when debugging.  In addition, AFAIK, our CRT problems come from using compiled binaries from other projects (adns, etc.) that *currently* use the VS 6 CRT but may switch at any time.  I think we'd still have to ensure all components we use are running with the same CRT thus the hassles with having to compile them with the CRT of the developers toolchain.

-- 
Regards,

Graham Bloice
Software Developer
Trihedral UK Limited
Tel: +44 (0)1224 258914