As far as a cross platform programming goes, whats your opinion on writing your threading, sockets, etc. (everything except graphics) using POSIX functions and such, and then using cygwin to compile it under windows? Are there any serious disadvantages?