Nikolay Sivov <[email protected]> writes: > @@ -260,3 +307,24 @@ int CDECL _atoflt( _CRT_FLOAT *value, char *str ) > { > return _atoflt_l( value, str, NULL ); > } > + > +/********************************************************************* > + * ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z > (MSVCR90.@) > + */ > +DEFINE_THISCALL_WRAPPER(MSVCRT_type_info_name_internal_method,8) > +const char * __thiscall MSVCRT_type_info_name_internal_method(type_info * > _this, struct __type_info_node *node) > +{ > + /* this is a forward to type_info::name() */ > +#ifdef __i386__ > + static const char *typeinfo_name = "?name@type_info@@QBEPBDXZ"; > + void* (WINAPI *p)(void*); > +#else > + static const char typeinfo_name[] = "?name@type_info@@QEBAPEBDXZ"; > + void* (__cdecl *p)(void*); > +#endif > + static int once; > + > + if (node && !once++) FIXME("type_info_node parameter ignored\n"); > + p = (void*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), typeinfo_name); > + return call_func1(p, _this); > +}
I think it would be better to duplicate the implementation after all. Sorry for misleading you with the GetProcAddress suggestion, I hadn't realized that it would require the thiscall mess. -- Alexandre Julliard [email protected]
