GSOC proposal - control panel

Robert Shearman rob at
Thu Mar 27 09:53:36 CDT 2008

pure_evil at wrote:
> No dice.
> CPls are DLLs that export a function - CPlApplet(). 
> winegcc coughs on dllexport. - not implemented.

__declspec(dllexport) is a MSVC-only feature. Hence, when compiling with 
gcc (even using winegcc) it won't actually export the function. As has 
been stated before, you need to use a .spec or .def file to export it.

> I've been hacking at it for days on end now. 
> Result: CPl can be compiled under windows and run under wine. CPls compiled 
> with winegcc don't export that function => not treated as control panel 
> applets.
> software to aid anyone: dllexp.exe. Download and run on any dll/cpl of 
> windows, you get exports in it; run on wine dlls - nada. (hence, No Template 
> in wine's source. Twain DLL exports some methods though.)
> If dllexp.exe can do it, so can they. Solution: M$ implements a code that 
> *checks for a dll version* (based on what the DLL exports). Doesn't find 
> export => coughs and dies with an "Incompatible DLL version". Happened before 
> with OS2 / Windows. Maybe has happened now with all M$ that cough on wine.
> Not enough intimate knowledge => can a soft cough and die based on a call to a 
> DLL export which isn't there, without being designed to do so?

A DLL compiled as a winelib DLL won't be parsed by a tool that reads PE 
DLLs, because winelib DLLs are Elf shared objects. Use winedump instead.

Rob Shearman

More information about the wine-devel mailing list