rfc: _thiscall and msvcrt

Eric Pouech pouech-eric at wanadoo.fr
Sat May 24 15:49:56 CDT 2003


> This will not compile, because I have ALSO changed
> MSVCRT_bad_typeid_copy_ctor as it too suffers from the _thiscall issue.
> (Even if I switch the parms around to account for moving the this to the
> last parm).

the simplest (and cleanest) way, may be to let the current functions 
untouched, but change the name in the .spec from.
for example
cdecl -register ??0bad_typeid@@QAE at ABV0@@Z(ptr) 
__reg_MSVCRT_bad_typeid_copy_ctor

and in C file, leave MSVCRT_bad_typeid_copy_ctor as it is and implement 
the __reg functions as:

void __reg_MSVCRT_bad_typeid_copy_ctor(const bad_typeid * rhs, 
CONTEXT86* context)
{
     MSVCRT_bad_typeid_copy_ctor((bad_typeid *)context->Ecx, rhs);
}

that should work...
don't forget also that register functions return their result in 
context->Eax...
A+
-- 
Eric Pouech




More information about the wine-devel mailing list