[Winpcap-bugs] "vsnprintf" - build error - fix/update suggestion

James Rhodes james_rhodes at ciqual.com
Mon Feb 9 08:42:04 PST 2009


Hi,

Regarding irritating change to the MS compiler above...

FWIW I believe that the correct approach for a formal change to cope 
with this would be along the following lines (once the winpcap project 
starts using/supporting MS VS C++ 2008 - though the change can be made 
at any time)

pcap-stdinc.h:
=======================
#if _MSC_VER < 1500
#define vsnprintf _vsnprintf
#endif
=======================
compiler version 1500 comes with "MS VS C++ 2008"
other versions against release (non-exhaustive)
  2005 is  1400
  2003 is  1310
  2002 is  1300
  6.0  is  1200
  4.2  is  1020

(This file is only included in a WIN32 windows build (see pcap.h) so 
_MSC_VER should be defined in that case, however one could add 
'defined(_MSC_VER) &&' for belt-and-braces protection)

I'll add this note to the issue-ticket that I raised on the libpcap 
project. Though clearly fixing/changing it is clearly (to me) within the 
remit of winpcap project.

cheers,
    James.


Gianluca Varenni wrote:
> The samples for 4.0.2 do not support Visual Studio 2005/2008, albeit it 
> should be rather easy to tweak the include/source files and have them 
> compile.
> 
> 4.1 beta5 samples should compile ok with Visual Studio 2005 (and I 
> expect them to compile ok on 2008, although I haven't tried). What's the 
> error message with 2008 (I suppose you are using this version of VS).
> 
> Have a nice day
> GV
> 
> ----- Original Message ----- From: "James Rhodes" <james_rhodes at ciqual.com>
> To: <winpcap-bugs at winpcap.org>
> Sent: Wednesday, February 04, 2009 5:54 AM
> Subject: [Winpcap-bugs] "vsnprintf" - build error in winpcap ver. 4.0.2 
> built with MS Visual Studio C++
> 
> 
>> Hi there,
>>
>> Most likely you have encountered this, but I couldn't find a reference 
>> so I'll submit a bug.
>>
>> 1) I downloaded the winpcap development kit for 4.0.2
>>
>> 2) Loaded the examples into the the latest version of MS Visual Studio 
>> C++ Express
>>
>> 3) Build gives error:
>> --------------------------------------------------
>>    Compiling...
>> basic_dump.c
>> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : 
>> error C3163: '_vsnprintf': attributes inconsistent with previous 
>> declaration
>>         c:\program files\microsoft visual studio 
>> 9.0\vc\include\stdio.h(350) : see declaration of '_vsnprintf'
>> ---------------------------------------------------
>>
>> 4) A confilct exists in pcap-stdinc.h line 63 ("#define vsnprintf 
>> _vsnprintf")
>>
>> 5) A (temporary) fix is to comment out that line.
>>
>> 6) A little dig around (with the aid of google) shows that MS has (in 
>> it s latest release) decided to add it's own definition of 
>> vsnprintf...which means that the supplied definition is not compatible 
>> with that ver. of the MS tool.
>>
>> 7) Full fix conditional guard around define depending on whether the 
>> symbol is already defined ???
>>
>> 8) Problem would seem to exist in ver. 4.1.beta5 as well
>>
>> Cheers,
>>    James.
>>
>> _______________________________________________
>> Winpcap-bugs mailing list
>> Winpcap-bugs at winpcap.org
>> https://www.winpcap.org/mailman/listinfo/winpcap-bugs 
> 




More information about the Winpcap-bugs mailing list