Ethereal-dev: Re: [Ethereal-dev] errors linking ethereal CVS - Visual Studio .NET Professional
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