Chris January chris at
Wed Nov 10 16:15:59 CET 2004

> Chris January wrote:
> > I'd rather the same binary ran on all Windows platforms rather than 
> > providing separate binaries for different platforms. With 
> the scheme 
> > you have suggested above I must compile one binary for 
> Windows 95 with 
> > WINVER=0x0400 and another for Windows XP with WINVER=0x0501 to use 
> > WinXP features. IMHO, we should define WINVER and _WIN32_WINDOWS to 
> > the highest possible values, but then conditionally use the new 
> > features in later versions depending on the version of 
> Windows we are running on.
> O.K. "The same binary for all windows platforms" - that's an argument.
> The #if(WINVER>=0x400) of my patch must be replaced to avoid 
> crashes under win95.
> But, do we need the definitions of qt_windows with the 
> highest possible _WIN32_WINDOWS and WINVER values?

If we don't set it to the highest possible values then defines for features
only present in later versions will not be included (since they will are
guarded by #if WINVER>0x0500, etc. lines) and we will have to re-define them
in qt_windows.h.
What we actually want is the defines and structures but not the prototypes
so we don't accidentally call non-Windows 95 functions but I can't see how
we can get that. Functions only present in later versions should be loaded
dynamically using GetProcAddress (and LoadLibrary for DLLs).


More information about the kde-cygwin mailing list