spec files - syntax and generation

Jerry Jenkins Jerry_J_Jenkins at hotmail.com
Tue Oct 28 19:41:23 CST 2003


Martin Tröster wrote:
> 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?
The most safe one I have known is to disassemble it and look over the 
output. If the function have no parameters, you can declare it as either 
CDECL or STDCALL.

Suppose it have some parameters and its type is CDECL, you can find:
1. "lret" in the function
2. it will be called in a way like
pushl something1
pushl something2
call address of testfunc1 at 0
addl $8, %%esp

and for a STDCALL, there are:
1. something that is similar to "lret $8" in the function
2. it will be called in a way like
pushl something1
pushl something2
call address of testfunc1 at 0


> 
> Thanks again for any help!
> 
> Cheers,
> Martin




More information about the wine-devel mailing list