New to wine
rolf.kalbermatter at citeng.com
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.
More information about the wine-devel