"Martin Tröster" troymcclure@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@stackspace. Is there anything wrong to translate an entry for "char* testfunc(char* str, int var1, long var2, long* ptr)" called "testfunc@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@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.