用于ARM的 Windows 8(也称为 Windows RT)是否具有相当于Win32 API的?

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

是的,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

你可以看到,所有的都是标准的Win32的东西.

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

Windows 8 ARM,A.K.A. “Windows RT”有Winapi(win32)可供第三方开发人员使用?的更多相关文章

  1. 将Trickle移植到android

    >如何告诉编译器链接我之前为android交叉编译的共享库,以便为android生成最终的可执行命令行应用程序.而且这甚至可以在Android上移植涓流?

  2. android – PANIC:’arm’CPUS缺少模拟器引擎程序

    我得到了与下面链接中提到的相同的问题.但是这个问题已被搁置,我仍在寻求解决方案.https://stackoverflow.com/questions/27146511/panic-missing-emulator-engine-program-for-arm-cpus-eclipse所以我想提出这个问题并在这里问一下.直到昨天,模拟器工作正常.但是从今天起,我在尝试打开模拟器时收到以下错误我的A

  3. Android是否真的存在于ARM之外的其他平台上?

    我想将用C编写的应用程序移植到android.将应用程序从C转换为Java将需要大量工作,我更愿意使用该应用程序更好地为该平台,而不是修复转换错误和解决重构问题.NDK似乎是一条很好的路线,但实际上我不想错过一个平台只是因为NDK不支持或不支持它.Android声称支持MIPS,ARM,X86和其他……是否有任何运行或将运行Android的非ARM设备?

  4. android – 关于arm-eabi-gcc和交叉编译

    如果是的,然后问题2:我正在尝试编译这样一个库:libao.使用这些命令:在组装结束时收到以下内容:configure:错误:在此平台上找不到16位类型!如何修复和正确配置库?

  5. Android模拟器ABI

    序言:这个问题已经过时了.创建Android虚拟设备时,可以选择cpu/ABI.我已经尝试了所有可用的目标–除了ARM之外别无选择.我的目标是Android3.2.我假设这是为了在x86上模拟平板电脑或上网本.那些甚至存在于硬件中吗?编辑:在AndroidToolsv17中,API级别10下有一个可选的IntelAtomx86映像.编辑2:ARMv7a现在也在那里.到目前为止没有MIPS.EDIT3:MIPS仿真器和图像现在也可用.等待一些新架构(ARMv8?

  6. 如何强制Android应用程序使用32位或64位库

    在具有64位ARM的Android设备上,将有两个版本的库,32位和64位,它们的性能可能会有所不同.我想知道是否有办法强制应用程序使用32位或64位库.解决方法安装apk时可以指定ABI.adbinstall–abi

  7. Android NDK – 它支持直接ARM代码或只支持Thumb

    我被要求评估我们的产品的Android平台,我正在看各种选项,我只是刚刚刮目前的表面,一件事令我困扰的是,我看不到如何编译代码作为直接的ARM代码,我知道Thumb运行速度较慢,我们将需要在代码的关键部分的性能.我认为应该只是在Android.mk文件的LOCAL_CFLAGS中设置-march标志,但是我不能让它工作…解决方法在Android.mk中为模块指定以下标志将编译直接的ARM代码.启用优化也可能有助于:

  8. 如何在Android项目中使用ARM汇编代码?

    我对Assembly和ARM没有特别的经验,但是我可以在其中编写一些例程,我想看看它们是如何在装有ARM的Android设备上运行的.将程序代码文件包含在Android项目中的程序是什么?我可以只从本机代码或从Java调用吗?

  9. android-ndk – 使用arm-linux-androideabi-gcc编译对象的问题

    背景OSX是OS>R8NDK我正在使用AndroidGCC编译器来编译下面的类…我用以下命令做…所以由于缺乏gcc知识,我发现这一点,并尝试…有人可以帮我做我做错了吗?我错过了一个链接吗?解决方法您必须告诉GCC在哪里找到Android系统文件和标题.使用:>ndk-build和一个带有BUILD_EXECUTABLE的Android.mk>或–sysrootGCC选项[1][2]

  10. iOS逆向工程之Hopper中的ARM指令详解

    这篇文章主要介绍了iOS逆向工程之Hopper中的ARM指令的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部