Windows phone 7本机代码支持

wat*_*rif 12 c++ windows-phone-7

2个问题:

  • 有人能告诉我,所有开发人员在未来版本的Phone 7 OS中是否支持非托管c ++代码?
  • MS不支持非托管c ++代码的原因是什么?

小智 10

这个答案纯粹是推测性的,但我觉得大多数回答过这个问题的人都不知所措.让我们暂时假设这不是微软的报复性决定,而是实际上是一个经过深思熟虑的工程决策,与内容限制或其他方面完全无关.这些问题只是MS的一个奖励

微软正在进军移动市场,这次看起来真实.很快将有数以千万计的诺基亚手机使用Windows Phone发货,无论他们获得什么,都只会是肉汁.Windows Phone虽然还没有真正找到它的家.

在未来一两年内,手机,平板电脑和笔记本电脑将最终开始融合到一个设备中.人们将手机放在口袋里,但手机也将是他们PC的CPU单元.这意味着只需坐在无线HDMI监视器旁边,通过无线USB连接键盘和鼠标(如果我们都不走运,就连接蓝牙),用户将随时随身携带整个PC.平板电脑将成为电池供电的触摸屏,可与您口袋中的PC连接.

因此,为Windows Phone编写的所有软件都应该能够在PC,平板电脑和/或手机上不加修改地运行.这是因为您运行的PC很可能是运行Windows 8的基于x86或ARM的.当PC放在您的口袋中时,您将看到的用户界面将是Windows Phone GUI.当您连接到显示器时,您将看到功能区界面.但底层操作系统很可能是Windows 8,而不是目前使用的Windows CE.

基于这一切,微软可以确保投资为Windows Mobile市场生产应用程序的开发人员不会被搞砸,并且当新平台出现时Windows Mobile设备的用户不会被缩短以确保存在在所有这些处理器上运行应用程序的标准系统.

即使是现在,编写Honeycomb也是一场噩梦,因为如果你开发本机代码,你必须同时支持ARM和x86,并且它没有真正的支持机制.唯一的解决方案是开发,打包和发布两个版本.为iDevices编写应用程序更容易,因为没有重叠.桌面上的x86,设备上的ARM.如果必须在设备上使用本机代码,则只需要ARM即可.即使这样,设备和桌面都有胖二进制支持,所以除了优化之外,这不会是一个问题.

最后,微软严格坚持.NET的决定可能是一个很好的决定.一旦他们在市场上拥有大量的诺基亚手机并且事情已经解决了一些问题,本机代码可能是真正的可能性.

  • 关于支持蜂窝作为噩梦的本机代码的声明是完全错误的.我编写c ++代码,标准的Android NDK允许您在同一个APK和部署中为ARM和x86构建.我们每天都这样做 - 实际上它非常简单! (7认同)

cta*_*cke 9

这些答案适用于应用程序开发的角度.OEM现在可以编写本机代码,因为它们是如何创建驱动程序的,但这对于大多数开发人员来说并不开放或不可用,因此对大多数开发人员都没用.

对于#1,微软没有发布任何公告,所以只有微软才知道答案而且他们没有说.

对于#2而言,所有这些都与代码安全性和整体平台稳定性有关.沙箱本机代码非常困难,他们不希望您的应用程序能够影响其他应用程序或平台本身.一般的想法是你应该使用Silverlight或XNA进行应用程序开发,这就是他们公开的内容.