New to wine

Rolf Kalbermatter rolf.kalbermatter at
Wed Jan 30 03:36:22 CST 2002


I happened to find wine when researching some undocumented stuff in shell32.dll
for my own shell extensions I had written. It was interesting to see how things may
be done in windows. I also identified some parts in the wine shell32 which need
more attention and plan to submit some patches concerning that after I have
familiarized myself a little more with wine.

Since I had no Linux system at my hands I tried to use the Visual C 5 compiler
on my windows system to compile the shell32 dll and found some problems
with that. Separate from some wine specific project definitions which need to
be made for Visual C to process the wine headers Iand which I probably haven't
done all properly) there was one problem with function pointer definitions.

All wine headers seem to declare function pointers like

<return value> WINAPI (*<function pointer name)(<parameter list>)

Visual C 5 does not like the WINAPI (eg __stdcall) outside of the brackets and requires:

<return value> (WINAPI *<function pointer name>)(<parameter list>)

I could also not find any comprehensible ANSI C description which would care to
explain what would be the correct way of function pointer declarations with a calling
convention identifier. I tried to figure out how this could be solved. Declaring WINAPI
to be empty and telling Visual C to use __stdcall as default gives other problems with
internal wine functions without explicit calling convention declaration and with a variable
argument list, which requires __cdecl.

The only way I could find was to adjust the function pointer definitions in the affected
headers. Of course this goes quite far and might cause problems with other compilers. 

As I will soon have a new development machine on which I will install Linux alongside
of Windows I can fairly easily check if this would cause problems with gcc, but wine
seems to care for more compilers than that and I have no idea if such a change would
cause problems (it probably would anyhow :-|  ).

Maybe there is someone on this list which can give me an direct answer to this.

Rolf Kalbermatter

More information about the wine-devel mailing list