Module: wine Branch: master Commit: 263a1448f96816120011b5a5855929e24b7a4818 URL: http://source.winehq.org/git/wine.git/?a=commit;h=263a1448f96816120011b5a585...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Dec 26 23:43:03 2013 +0100
msvcp: Don't assume that msvcrt is imported.
---
dlls/msvcp90/locale.c | 5 ++++- dlls/msvcp90/msvcp_main.c | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c index 9b84b63..f9d8e1b 100644 --- a/dlls/msvcp90/locale.c +++ b/dlls/msvcp90/locale.c @@ -1410,8 +1410,11 @@ void __thiscall ctype_char__Tidy(ctype_char *this) /* ?classic_table@?$ctype@D@std@@KAPEBFXZ */ const short* __cdecl ctype_char_classic_table(void) { + ctype_char *ctype; + TRACE("()\n"); - return &((short*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), "_ctype"))[1]; + ctype = ctype_char_use_facet( locale_classic() ); + return ctype->ctype.table; }
/* ??0?$ctype@D@std@@QAE@ABV_Locinfo@1@I@Z */ diff --git a/dlls/msvcp90/msvcp_main.c b/dlls/msvcp90/msvcp_main.c index 848d5bb..489aacb 100644 --- a/dlls/msvcp90/msvcp_main.c +++ b/dlls/msvcp90/msvcp_main.c @@ -60,9 +60,14 @@ void* (__cdecl *MSVCRT_operator_new)(MSVCP_size_t); void (__cdecl *MSVCRT_operator_delete)(void*); void* (__cdecl *MSVCRT_set_new_handler)(void*);
+#define VERSION_STRING(ver) #ver +#define MSVCRT_NAME(ver) "msvcr" VERSION_STRING(ver) ".dll" + static void init_cxx_funcs(void) { - HMODULE hmod = GetModuleHandleA("msvcrt.dll"); + HMODULE hmod = GetModuleHandleA( MSVCRT_NAME(_MSVCP_VER) ); + + if (!hmod) FIXME( "%s not loaded\n", MSVCRT_NAME(_MSVCP_VER) );
if (sizeof(void *) > sizeof(int)) /* 64-bit has different names */ {