Wireshark-dev: [Wireshark-dev] Windows build for VS 2008
From: Nathan Jennings <njen@xxxxxxxxxxxx>
Date: Thu, 24 Jul 2008 23:51:04 -0400
Hello,

For some reason I've found myself on Windows with VS 2008! Where, oh where, is my FreeBSD partition? ;-) I think it's a gravitational force field of some sort from another dimension that's inescapable for me. :-)

I spent a bit of time last night with my Windows build environment which is Visual Studio 2008 Pro and I had a couple of thoughts.

I disabled most of the optional packages, but did find ADNS ran into a compile error... something about a struct type redefinition; but I commented that package out and was able to compile everything else OK.

I ended up modifying some lines like below in "Makefile.nmake" to get Wireshark to run and avoid the initialization error from the non-existent manifests; which basically means adding the MSVC variant so mt.exe gets executed for wireshark and all the other instances of lines where I found "mt.exe":

Was:

!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20" mt.exe -nologo -manifest "wireshark.exe.manifest" -outputresource:wireshark.exe;1
!ENDIF

My mod:

!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20" || "$(MSVC_VARIANT)" == "MSVC2008EE" mt.exe -nologo -manifest "wireshark.exe.manifest" -outputresource:wireshark.exe;1
!ENDIF

So, this at least allows me to start Wireshark.exe, but if I try to open a capture file, I never see the open file dialog displayed; it's as if it was never clicked. Same behavior if I try the toolbar icon.

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. ;-)

Thanks, -Nathan