KDE/kdelibs/kdecore/network
Shane King
kde at dontletsstart.com
Wed Nov 21 13:15:39 CET 2007
Christian Ehrlicher wrote:
> Ok, so it looks like the compiler errors only occur with PSDK 6.0 (without a) - I know for sure that I got them (and switched back to PSDK 5.x afterwards because of this).
>
> I would suggest to fix this problem in kdewin32 library:
> - define inet_pton/ntop to kde_inet_pton/ntop to avoid name clashing with PSDK > 6
> - on first run check for inet_pton/ntop symbols in ws2_32.dll and use them if possible, otherwise use the kdewin32 implementation (= the same like in netsupp.cpp)
> - to not change k3socketaddress.cpp sources we define kde_inet_ntop inet_ntop in kdewin32 header. It should work because winsock2 is included before the kdewin32 header
>
> Is this ok?
>
>
> Christian
Actually, now I look through it all again, this isn't quite the complete
solution.
The current inet_ntop/pton in kdewin32 is only being built if the PSDK
isn't set for Vista (eg _WINNT_WIN32 < 0x600 and whatever associated
defines get set). The problem is we never set _WINNT_WIN32, so if you
have a vista capable PSDK it's automatically enabling everything. So we
end up linking a version of those functions against ws2_32.lib. This
compiles successfully, but wont run on non-vista machines.
Since I assume we want ultimately our compiled binaries to run on XP and
2000, we probably should set _WINNT_WIN32 to 0x500, hence always build
and link against our custom inet_ntop/pton.
Does this sound reasonable? If so, where should _WINNT_WIN32 be defined?
Ideally it should be in some global header so that things stay consistent.
Shane.
More information about the Kde-windows
mailing list