There is no guide that I know of. Here are the main points. Windows developers are not expected to support Wine at all. If there's a problem with a program running in Wine that does not exist in Windows, it's usually Wine's fault. If you feel so inclined, you can test your program on Wine and file bugs for things that are broken or missing in Wine. If you want to work around bugs, we prefer that you do it by switching to a method that works on both Wine and Windows, or that you activate the work-around only when you detect the corresponding bug. That way, everything can work the same as Windows when the bug is fixed. The nature of Wine is that no matter what you do, things could break at any time as Wine develops. Maybe you'll be able to work around the bugs as they come up, or get them fixed quickly, and maybe you won't. Maybe you won't even find out until months after it breaks. So while it's nice to make things easy for Wine users, it's probably not a good idea to promise support for Wine. You can solve that problem, but it means using Wine to provide a version of your program for Linux (or Mac). This isn't terribly difficult, but it may be more effort (or expense) than you want to put into it. If you're thinking of trying to build your program with winelib, don't bother. The only important difference between a winelib dll/exe and a windows dll/exe is that the winelib code can bypass the Windows API layer and access native APIs directly. Even if you want to do this, it's best to build a single dll or exe specifically for this and use the windows build of everything else.