If you get undefined references to Win32 API calls when
building your application: if you have a VC++
.dsp file, check it for all the
.lib files it imports, and add them to
your applications .spec
file. winebuild gives you a warning for
unused imports so you can delete the ones you don't need
later. Failing that, just import all the DLLs you can find in
the dlls/ directory of the Wine source
tree.
If you are missing GUIDs at the link stage, add
-lwine_uuid to the link line.
gcc is more strict than VC++, especially when compiling
C++. This may require you to add casts to your C++ to prevent
overloading ambiguities between similar types (such as two
overloads that take int and char respectively).
If you come across a difference between the Windows headers
and Wine's that breaks compilation, try asking for help on
<wine-devel@winehq.org>.