Avoid including other headers from the msvcrt headers, duplicate some definitions instead like Windows does. Always define wchar_t (suggested by Dimitrie O. Paun), and use wchar_t everywhere instead of WCHAR to avoid depending on Windows headers.
diff --git a/dlls/msvcrt/misc.c b/dlls/msvcrt/misc.c index ea917f6..d292b6f 100644 --- a/dlls/msvcrt/misc.c +++ b/dlls/msvcrt/misc.c
@@ -60,7 +60,7 @@ */ void* _lfind(const void* match, const void* start, unsigned int* array_size, unsigned int elem_size, - MSVCRT_compar_fn_t cf) + int (*cf)(const void*,const void*) ) { unsigned int size = *array_size; if (size) @@ -78,7 +78,7 @@ */ void* _lsearch(const void* match, void* start, unsigned int* array_size, unsigned int elem_size, - MSVCRT_compar_fn_t cf) + int (*cf)(const void*,const void*) ) { unsigned int size = *array_size; if (size)