Windows 8 ARM,AKA"Windows RT"是否为第三方开发人员提供Winapi(win32)?

Pro*_*ica 10 api winapi arm windows-8

Windows 8 for ARM,也称为Windows RT,是否具有与Win32 API相同的功能?

(我不是说它可以运行Win32 x86代码,但是如果它有第三方开发人员可用的Win32 API .)

Igo*_*sky 11

是的,ARM版本将支持与x86和x64版本相同的API,可能在特定于体系结构的内容(如异常处理)方面略有不同.

例如,以下是msvcrt110.dll的ARM版本从kernel32导入的API列表:

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
Run Code Online (Sandbox Code Playgroud)

如您所见,所有都是标准的Win32内容.

另请参见http://getwired.com/2011/09/20/win32-the-reports-of-my-death-are-greatly-exaggerated/

  • 谢谢你的链接.每当这个话题出现时,我都厌倦了被人大喊大叫. (3认同)
  • 从技术上讲,您的列表仅显示*某些*Win32 API函数在ARM上可用,而不是*full*Win32 API. (3认同)

Pro*_*ica 0

不。或者更确切地说,是的,但不是我们所知道的 Win32。Win32 的一小部分可供 WinRT 应用程序使用,而 WinRT 应用程序是唯一可以在 Windows RT 上运行的应用程序。(“ARM 版 Windows 8。”)

第三方应用程序开发人员只能访问经典 Win32 API 的一小部分。