我知道Windows Phone 7开发的推荐语言是C#。
但是,出于各种原因,我更倾向于继续使用标准 C ++编程,如果可能的话。
是否可以仅使用标准C ++为Windows Phone 7编程?
如果答案是肯定的,那么我需要哪些工具和资源才能实现这一目标?
答案 0 :(得分:19)
编辑,最后:对于WP7它永远不会,但对于Windows Phone 8 - 是的,你可以。原生应用程序,C / C ++,iOS / Android可移植性和代码共享,DirectX。但是,您需要Visual Studio 2012和Windows 8进行WP8开发。 VS2010没有获得必要的SDK。要运行模拟器,您需要一个 64位物理Windows 8机箱,并启用SLAT启用CPU。您仍然可以在虚拟机上进行开发,但是您需要一台设备来运行应用程序,模拟器将无法启动。
然而,nongame UI仍将基于XAML并进行管理。不支持整个Win32 API。他们正在推动一个带有托管UI层和其下的本地中间件的模型。 纯粹本地开发仍然不是一种选择;虽然有人可能会尝试使用WinMD类作为XAML的代码隐藏。视觉XAML设计师可能会窒息,无论如何你都需要一个虚拟托管DLL。
编辑:甚至装配,只要它针对Thumb-2并且助记符是UAL风格。要在模拟器上运行,您必须生成一组针对英特尔的备用文件(或其他来源)。为了后人,这是2012年6月20日之前的回答:
如果您在Microsoft或OEM工作,那么是的。否则,不(现在)。
虽然有希望。谷歌确实在一段时间后放弃并发行了他们的NDK;微软也可能。本机代码功能已经存在。一旦他们拿出合理的沙盒解决方案,为什么不呢。
此外,大牌软件供应商已经有一些压力要求开放原生开发。 Mozilla人直截了当地说WP7上没有Firefox,除非它是原生的。类似关于Flash的谣言。
编辑:如果你想在WP7上使用原生SDK,就像我一样,请签署the petition here和/或the one over there。谢谢!
EDIT2:见this。这是泄密,因此不是官方的,但我仍然有一些希望。
EDIT3:还this。仍然不是正式的,但是这个传言将本机应用程序支持的时间框架更加接近 - 即将发布的Tango版本。
EDIT4:微软似乎非常热衷于推广WinRT,这是一款新的基于平板电脑的基于XAML的应用平台,它允许(除其他外)非托管C ++。现在,在所有其他主流移动操作系统上,平板电脑和手机应用程序堆栈是同一个。只是说'。
EDIT5:在C ++ =>行中有一些概念验证工作。 LLVM => MSIL和C ++ => LLVM => C#,但到目前为止没有生产质量。
答案 1 :(得分:6)
三星等手机制造商可以部署用非托管代码编写的应用程序,但所有其他开发人员都不能。
答案 2 :(得分:4)
不,这是不可能的。 Microsoft已做出决定,只允许应用程序开发人员在Windows Phone 7设备上使用托管代码。
答案 3 :(得分:1)
根据Wikipedia,Windows Phone 7.0运行Windows CE 6.0 R3/7.0 hybrid
作为操作系统。
理论上,人们可以使用C ++来构建针对Windows CE 6.0 R3和7.0的标准* C ++程序(预计将于2011年第一季度推出)。我的意思是所有标准* dll应该在那里(gdi32.dll,user32.dll)Internet Explorer和其他C ++程序仍在Windows Phone 7上运行。
how to get the application on the phone?
和how to run the application on the phone?
是我目前不知道如何回答的下一个问题。
答案 4 :(得分:1)
这次采访讲述了一些事情:Writing the WP7 App Platform in C# and C++我还没看过,所以你可以添加相应的评论:)
答案 5 :(得分:0)
Windows Phone 7支持Silverlight和XNA。
Windows Phone 7的所有程序都是用.NET托管代码编写的。也可以在Visual Basic .NET中编写Windows Phone 7应用程序。 Visual Studio 2010 Express for Windows Phone包括XNA Game Studio 4.0和屏幕手机模拟器,还集成了Visual Studio 2010.您可以使用Microsoft Expression Blend为Silverlight应用程序开发视觉效果和动画。
Windows Phone 7的Silverlight和XNA平台共享一些库,您可以在Silverlight程序中使用某些XNA库,反之亦然。 但是,您无法创建混合来自两个平台的视觉效果的程序。也许这将来有可能,但不是现在。
编辑: 更清楚..没有本机C ++支持你必须使用Silverlight或XNA,两者都基于.net框架。