Nikolay Sivov nsivov@codeweavers.com 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.