Hi,

If there is a way to dynamically find out the version of the structure
returned by function in question, so that we can be sure that required
fields are present, we may force 0x0600 version in source, just to get
the structure definitions from official headers. Plus we also need to
add support for older SDK versions, where the newer structure items
were not yet available at all (for this there doesn't seem to exist
well-known
and documented way, so historically we check compiler version, assuming
that it's always tied with a given PSDK version (which is theoretically
wrong, but works in most installations)).

Brgds,
Viktor

On Fri, Feb 26, 2010 at 5:51 PM, Xavi <jara...@gmail.com> wrote:

> Hi all,
>
> IMHO the best solution is to define the version of Windows that supports
> the C compiler before compilation.
> For example, if your C compiler supports Vista: set
> HB_USER_CFLAGS=-D_WIN32_WINNT 0x0600
>
> http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx
>
> Some structures are defined only in the headers from one version of Windows
> other may change.
> IPv6 is supported from Windows Server 2003, Windows XP.
> Even calling functions dynamically is necessary data with which they work.
> It can make the binary work with earlier versions but the headers and the
> code should be protected by .-
> #if _WIN32_WINNT >= 0x0501
>        ...
> #endif
> If not, we can have compile-time errors.
> Please, what do you think about this, comments?
>
> --
> Xavi
>
> _______________________________________________
> Harbour mailing list (attachment size limit: 40KB)
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour
>
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to