spec files - syntax and generation

Alexandre Julliard julliard at winehq.org
Tue Oct 28 21:44:24 CST 2003


"Martin Tröster" <troymcclure at web.de> writes:

> - Stack size and parameters in spec file:
> The def files are, as far as I know, very similar to the spec files:
> they contain the function name (either mangled or not mangled), as
> well as (most of the time) the stack space - format:
> functionname at stackspace. Is there anything wrong to translate an
> entry for "char* testfunc(char* str, int var1, long var2, long*
> ptr)" called "testfunc at 16" into "@stdcall testfunc(ptr ptr ptr
> ptr)", without caring for the type of parameters? More explicitely
> asked, what use do I have from using str or long instead of ptr in
> the spec file?

All it does is allow you to get more readable output from the relay
traces. If you don't care about that, using 'ptr' everywhere works
just fine.

> - Stdcall vs. cdecl
> How do I find out whether a function uses CDECL instead of STDCALL?
> I found the information (link lost unfortunately) that entries in
> the def file like testfunc1 at 0 are called via STDCALL, whereas in
> case of testfunc2 without any @ specifying the space is CDECL. Is
> this guess right? If not, how else do I find this out?

Yes this is correct, the stdcall functions are the ones decorated with
@xxx.

-- 
Alexandre Julliard
julliard at winehq.com




More information about the wine-devel mailing list