When trying to build the lame_enc.dll under MS Visual C++ 6.0 SP5 and the October 2002 Platform SDK, I get 23 warnings when the warning level is set to 3. (at level 4, I get 345). The only one I know how to easily fix is to change DEFAULT_QUALITY to LAME_DEFAULT_QUALITY to prevent the MS name clash. (Full listing follows...)
C:\lame-3.93.1\libmp3lame\lame.c(57) : warning C4005: 'DEFAULT_QUALITY' : macro redefinition
C:\Program Files\Microsoft SDK\include\wingdi.h(1265) : see previous definition of 'DEFAULT_QUALITY'
C:\lame-3.93.1\libmp3lame\presets.c(137) : warning C4244: 'function' : conversion from 'const double ' to 'float ', possible loss of data
C:\lame-3.93.1\libmp3lame\presets.c(231) : warning C4305: 'function' : truncation from 'const double ' to 'float '
C:\lame-3.93.1\libmp3lame\quantize_pvt.c(996) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\quantize_pvt.c(997) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\quantize_pvt.c(998) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\quantize_pvt.c(999) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\takehiro.c(992) : warning C4028: formal parameter 2 different from declaration
C:\lame-3.93.1\libmp3lame\takehiro.c(992) : warning C4028: formal parameter 3 different from declaration
C:\lame-3.93.1\libmp3lame\vbrquantize.c(186) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(220) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(285) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(285) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(285) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(287) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(287) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(287) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(289) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(289) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(289) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(291) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(291) : warning C4307: '*' : integral constant overflow
C:\lame-3.93.1\libmp3lame\vbrquantize.c(291) : warning C4307: '*' : integral constant overflow
Logged In: YES
user_id=1071
part of warnings (in takehiro.c and lame.c) are fixed in CVS.
Logged In: YES
user_id=1056
Now we have 20 warnings on libmp3lame (btw it is 20 times
the same one).
I am always trying to have a low number of warnings, but we
might perhaps never go down to 0 one, as the warnings are
different between compilers.
But do not worry, I have checked them and the current ones
are harmless.