diff --git a/dll/win32/msvcrt/CMakeLists.txt b/dll/win32/msvcrt/CMakeLists.txt index 35a829cdb29..4d389ee5543 100644 --- a/dll/win32/msvcrt/CMakeLists.txt +++ b/dll/win32/msvcrt/CMakeLists.txt @@ -117,7 +117,7 @@ add_library(msvcrt_shared ${msvcrt_shared_asm} ) -target_compile_definitions(msvcrt_shared PRIVATE _MSVCR_VER=0) +target_compile_definitions(msvcrt_shared PRIVATE _MSVCR_VER=0 __UCRTSUPPORT__) add_dependencies(msvcrt_shared psdk asm) ############################################################################### diff --git a/dll/win32/msvcrt/cpp.c b/dll/win32/msvcrt/cpp.c index 84959f1a05c..c626a687330 100644 --- a/dll/win32/msvcrt/cpp.c +++ b/dll/win32/msvcrt/cpp.c @@ -610,6 +610,7 @@ void throw_exception(const char* msg) _CxxThrowException(&e, &exception_exception_type); } +#ifndef __UCRTSUPPORT__ /****************************************************************** * ?set_terminate@@YAP6AXXZP6AXXZ@Z (MSVCRT.@) * @@ -639,6 +640,7 @@ terminate_function CDECL _get_terminate(void) TRACE("returning %p\n", data->terminate_handler); return data->terminate_handler; } +#endif /* !__UCRTSUPPORT__ */ /****************************************************************** * ?set_unexpected@@YAP6AXXZP6AXXZ@Z (MSVCRT.@) @@ -682,6 +684,7 @@ _se_translator_function CDECL _set_se_translator(_se_translator_function func) return previous; } +#ifndef __UCRTSUPPORT__ /****************************************************************** * ?terminate@@YAXXZ (MSVCRT.@) * @@ -711,6 +714,7 @@ void CDECL unexpected(void) if (data->unexpected_handler) data->unexpected_handler(); terminate(); } +#endif /* !__UCRTSUPPORT__ */ /****************************************************************** @@ -898,7 +902,7 @@ void WINAPI _CxxThrowException( void *object, const cxx_exception_type *type ) for (;;) RaiseException( CXX_EXCEPTION, EXCEPTION_NONCONTINUABLE, CXX_EXCEPTION_PARAMS, args ); } -#if _MSVCR_VER >= 80 +#if _MSVCR_VER >= 80 || defined(__UCRTSUPPORT__) /********************************************************************* * ?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z @@ -971,7 +975,7 @@ void* __cdecl __AdjustPointer(void *obj, const this_ptr_offsets *off) #endif -#if _MSVCR_VER >= 140 +#if _MSVCR_VER >= 140 || defined(__UCRTSUPPORT__) typedef struct { diff --git a/dll/win32/msvcrt/except.c b/dll/win32/msvcrt/except.c index 50f131efdc7..d3e9ff9daf4 100644 --- a/dll/win32/msvcrt/except.c +++ b/dll/win32/msvcrt/except.c @@ -522,6 +522,7 @@ static BOOL WINAPI msvcrt_console_handler(DWORD ctrlType) return ret; } +#ifndef __UCRTSUPPORT__ /********************************************************************* * __pxcptinfoptrs (MSVCRT.@) */ @@ -529,6 +530,7 @@ void** CDECL __pxcptinfoptrs(void) { return (void**)&msvcrt_get_thread_data()->xcptinfo; } +#endif /* !__UCRTSUPPORT__ */ typedef void (CDECL *float_handler)(int, int); @@ -642,6 +644,7 @@ void msvcrt_free_signals(void) SetConsoleCtrlHandler(msvcrt_console_handler, FALSE); } +#ifndef __UCRTSUPPORT__ /********************************************************************* * signal (MSVCRT.@) * Some signals may never be generated except through an explicit call to @@ -724,6 +727,7 @@ int CDECL raise(int sig) } return 0; } +#endif /* !__UCRTSUPPORT__ */ /********************************************************************* * _XcptFilter (MSVCRT.@) @@ -1011,7 +1015,7 @@ struct __std_exception_data { char dofree; }; -#if _MSVCR_VER>=140 +#if _MSVCR_VER>=140 || defined(__UCRTSUPPORT__) /********************************************************************* * __std_exception_copy (UCRTBASE.@) diff --git a/dll/win32/msvcrt/msvc_fwd_decl.h b/dll/win32/msvcrt/msvc_fwd_decl.h index 3b51fce986a..9748ac49f69 100644 --- a/dll/win32/msvcrt/msvc_fwd_decl.h +++ b/dll/win32/msvcrt/msvc_fwd_decl.h @@ -39,6 +39,8 @@ int __thiscall type_info_before(type_info* _this, const type_info *rhs); void __thiscall type_info_dtor(type_info* _this); const char* __thiscall type_info_name(type_info* _this); const char* __thiscall type_info_raw_name(type_info* _this); +struct __type_info_node; +const char * __thiscall type_info_name_internal_method(type_info * _this, struct __type_info_node *node); #undef bad_cast #undef bad_typeid