On 2020-04-16 21:38, Martin Storsjö wrote:
On Thu, 16 Apr 2020, Steve Lhomme wrote:
Based on this documentation some APIs are not allowed in UWP builds
https://docs.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps?view=vs-2019
The documentation is old and may not apply to Win10 but it's still the
one
listed for UCRT compatibility :
https://docs.microsoft.com/en-us/cpp/c-runtime-library/compatibility?view=vs-2019
---
mingw-w64-headers/crt/corecrt.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/mingw-w64-headers/crt/corecrt.h
b/mingw-w64-headers/crt/corecrt.h
index 8f9f6b42..76bb2ebe 100644
--- a/mingw-w64-headers/crt/corecrt.h
+++ b/mingw-w64-headers/crt/corecrt.h
@@ -491,6 +491,13 @@ typedef struct threadlocaleinfostruct {
#define __crt_typefix(ctype)
#endif
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
+#define _CRT_ALLOW_API_FAMILY_APP
+#elif WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+#define _CRT_ALLOW_API_FAMILY_DESKTOP
+#endif
This doesn't seem right.
If WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP, then
WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) is true, and
_CRT_ALLOW_API_FAMILY_DESKTOP never gets defined.
You're right. WINAPI_FAMILY_DESKTOP_APP matches both. So only
_CRT_ALLOW_API_FAMILY_APP is defined.
The goal of _CRT_ALLOW_API_FAMILY_APP is to only select API's allowed
for "apps" (WINAPI_PARTITION_APP), so the opposite of what
WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) provides. In the end I
don't use it.
So I only need to define _CRT_ALLOW_API_FAMILY_DESKTOP which should be
defined when we're not in WINAPI_FAMILY_APP. But the
WINAPI_FAMILY_PARTITION() macro doesn't allow selecting only
WINAPI_FAMILY_APP.
So in the end I need to switch the code to define
_CRT_ALLOW_API_FAMILY_APP and then hide some API's when it's defined.
I guess it would be ok if you'd change the #elif into #endif + #if.
// Martin
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public