Wireshark-dev: Re: [Wireshark-dev] Windows build for VS 2008

From: Nathan Jennings <njen@xxxxxxxxxxxx>
Date: Fri, 25 Jul 2008 23:40:29 -0400
On 7/25/2008 11:50 AM, Graham Bloice wrote:
Gerald Combs wrote:

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.


Thanks for the link to the bug id.

So how does it work now? I mean tracking the CRT for other projects Wireshark calls into/depends on?

I'm guessing the big ones are GTK/Glib and WinPcap? So do they use MSVC 2005 EE or, at least, the same CRT?

If I'm reading/understanding Gerald's link to the post and Graham's message correctly, then you can link/import to any CRT you'd like regardless of compiler version (i.e. use CRT v8 with VS 2008 or CRT v7 with VS2005)?

What I'm getting at is Wireshark could potentially call into three different CRTs if there were two other binary projects and they were compiled to two different CRT versions, correct?

I.e. Wireshark CRTv8, GTK/Glib CRTv7, WinPcap MSVCRT.

Thanks, -Nathan