Windows 8 for ARM, also known as Windows RT, does it have the equivalent of the Win32 API?
(I don't mean if it can run Win32 x86 code, but if it has the Win32 API available to third party developers.)
As Igor Skochinsky pointed out, Windows RT has (almost) the same Win32 APIs as Windows for x86. If you write a "Metro" app using C++ and WinRT, you should be able to call these functions as you like. However, you can't get such an app into the Windows Store, as it will very likely fail the automated tests. You can only run it under a "developer license", which is a special development mode that allows you to sideload apps onto your device. (Disclaimer: This is based upon my experiments with Windows 8 for x86, and documentation I've read. I haven't tried this on an actual Surface RT. There might be additional blocks in place that prevent your app from running.)
Also, you can't run your own Desktop apps on Windows RT, as Windows checks the signature of the executable and only runs it if it is signed by Microsoft. (There will probably be way around this, either by Jailbraking, or by self-signing your executables. I've opened a question on that topic, btw.)
Yes, the ARM version will support the same APIs as x86 and x64 builds, possibly with some slight differences in architecture-specific stuff like exception handling.
For example, here's the list of APIs that the ARM version of msvcrt110.dll imports from kernel32:
Setting environment for using Microsoft Visual Studio 2010 x86 tools.
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file arm_msvcr110d_win8.pe
File Type: DLL
Section contains the following imports:
KERNEL32.dll
100E4000 Import Address Table
1012DA80 Import Name Table
0 time date stamp
0 Index of first forwarder reference
108 DecodePointer
12E EncodePointer
498 RtlPcToFileHeader
425 RaiseException
269 GetModuleFileNameA
26A GetModuleFileNameW
1AA FreeEnvironmentStringsW
26D GetModuleHandleExW
2A1 GetProcAddress
160 ExitProcess
3C7 MultiByteToWideChar
258 GetLastError
26E GetModuleHandleW
2C4 GetStdHandle
5C1 WriteFile
1D3 GetCommandLineA
1D4 GetCommandLineW
19D FlsGetValue
19E FlsSetValue
21A GetCurrentThreadId
[...]
4B1 SetConsoleCtrlHandler
361 IsDebuggerPresent
2F7 GetTickCount64
3F0 OutputDebugStringA
38C LCMapStringA
232 GetEnvironmentVariableA
233 GetEnvironmentVariableW
36E IsValidLocaleName
38D LCMapStringEx
339 HeapReAlloc
33B HeapSize
338 HeapQueryInformation
As you can see, all are standard Win32 stuff.
See also http://getwired.com/2011/09/20/win32-the-reports-of-my-death-are-greatly-exaggerated/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With