Since both platforms are very different from their approach to software development, single-sourcing is not a simple task. Nevertheless there are several ways to go, and we'll discuss the use of wine, gtk and wxWidgets in this topic.
Using wine as a library usually means to recompile the applications using the gnu c compiler using the libwine.a to generate a new linux executable. This method creates a real linux application that does not need to be run under an emulator. Corel uses this approach for their port of coreldraw to linux, inprise ported delphi under the name kylix using that approach.
Using the emulator libraries slows down execution a bit, especially startup of programs takes longer as usual.
Tor Lillquvist has developed a port of GTK for windows (9x and NT) allowing to compile GIMP for windows. Arktos has developed a windows 3.1 port of GTK, used in the "Telefonbuch für Deutschland" Application for Windows 3.1. The GTK, GDK and GLIB libraries used consume about 2,5 MByte.
Using these tools it is possible to develop applications using the free GNU-C compiler for win32 from cygnus or the Microsoft Visual C++ compiler.
The GUI designer application "glade" used for interface design is not yet available for windows, so GUI design is to be performed on linux and the generated source codes may then be compiler for windows.
We've had very good expiriences with this method.