Ethereal-dev: Re: [Ethereal-dev] errors linking ethereal CVS - Visual Studio .NET Professional

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Andrew Hood <ajhood@xxxxxxxxx>
Date: Wed, 07 Jan 2004 23:43:02 +1100
Anders Broman (TN/EAB) wrote:
Hi,
I did a serach on MSVC7 and found this message:
http://www.ethereal.com/lists/ethereal-dev/200309/msg00645.html
Is that of any help ?
/ Anders

That looks significant. I suspect that some or all of the dependency binaries were compiled with a different version of MSVC - probably 6.


-----Original Message-----
From: ethereal-dev-bounces@xxxxxxxxxxxx
[mailto:ethereal-dev-bounces@xxxxxxxxxxxx]On Behalf Of Ulf Lamping
Sent: den 7 januari 2004 11:48
To: Andrew Hood
Cc: Ethereal-Dev
Subject: Re: [Ethereal-dev] errors linking ethereal CVS - Visual Studio
.NET Professional


Andrew Hood wrote:


Ulf Lamping wrote:

--- re compiling with VC7


Andrew Hood wrote:


tethereal runs.

ethereal keep crashing at various asserts in fdopen.c in msvcr70.dll trying to start a capture. It won't open existing captures either: "The file xxxx could not be opened for some unknown reason"



You might try using /NODEFAULTLIB:MSVCRT instead of /NODEFAULTLIB:LIBC.
But this is only guessing, I have no real idea how to solve this.


/NODEFAULTLIB:LIBC is definitely closer to the mark. Everything works except ethereal. With /NODEFAULTLIB:MSVCRT nothing links.

I suspect I might have to recompile all the depenecies with VC7. Where are the windows sources to match the binaries in win32/development on ethereal.com?


Well, I'm not sure if this will help you, and cannot say precisely where you will find the sources.

Did you try to debug the reasons, why the file cannot be opened? Some error code coming from the libs?

When trying to start a new capture, the usual failure is in fdopen.c (part of msvcrt70.dll) at line 54:

_ASSERTE(_osfile(filedes) & FOPEN);

which looks like the temp file it wants to write didn't open.

I have a new one.
After trying to open an existing file (which failed but didn't crash) and then starting a live capture, got an exception at capture.c at line 1890 when the first packet is received.

These errors both seem consistent with the mail Anders found in the archives.

intl.dll, iconv.dll, zlib1.dll and lots of others use msvcrt.dll

ethereal.exe, wiretap.dll and it appears all the other stuff compiled with VC7 use msvcrt70.dll or msvcr70d.dll

Which suggests recompiling the dependencies with VC7 so they all use the same standard libs is the way to go.

Unless there is a way to change all the msvcrt.dll references to refer to the relevent msvcr*70*.dll

Regards,
Andrew
--
There's no point in being grown up if you can't be childish sometimes.
                -- Dr. Who