Windows phone 7 Windows Phone 7和本机C++/CLI 微软最近发布了新的手机7平台的工具和文档,这让那些拥有大C++代码库(如我)的人感到沮丧,因为它们不再支持本地开发。虽然我发现有关这一决定被推翻的猜测,但我对此表示怀疑。因此,我在想,通过将此代码库改编为在C++/CLI下编译,使其可用于Phone 7的可行性有多大。当然,用户界面部分无法移植,但其余部分我不确定。有没有人有过类似的经历?我说的不是做大量低级工作的代码,而是经常使用模板和智能指针。

Windows phone 7 Windows Phone 7和本机C++/CLI 微软最近发布了新的手机7平台的工具和文档,这让那些拥有大C++代码库(如我)的人感到沮丧,因为它们不再支持本地开发。虽然我发现有关这一决定被推翻的猜测,但我对此表示怀疑。因此,我在想,通过将此代码库改编为在C++/CLI下编译,使其可用于Phone 7的可行性有多大。当然,用户界面部分无法移植,但其余部分我不确定。有没有人有过类似的经历?我说的不是做大量低级工作的代码,而是经常使用模板和智能指针。,windows-phone-7,arm,c++-cli,native,jit,Windows Phone 7,Arm,C++ Cli,Native,Jit,整个开发思想是建立在Silverlight上的。我认为您可以添加在C++中使用的管理DLL,而不会对Silverlight项目产生任何问题,但是它不能使用本机代码。p> 我计划今晚在我的机器上安装这些工具,并尝试一下 您可以使用/clr:safe选项在C++/CLI中生成可验证的托管代码。问题是,大多数普通C++代码都不会用那个选项编译。p> C#是目前WinPhone7唯一支持的语言 我完全希望MS将来也会增加对VB和C++/CLI的支持,但不要指望很快就会打开本机代码和服 本机代码有太多的问

整个开发思想是建立在Silverlight上的。我认为您可以添加在C++中使用的管理DLL,而不会对Silverlight项目产生任何问题,但是它不能使用本机代码。p>
我计划今晚在我的机器上安装这些工具,并尝试一下

您可以使用/clr:safe选项在C++/CLI中生成可验证的托管代码。问题是,大多数普通C++代码都不会用那个选项编译。p> C#是目前WinPhone7唯一支持的语言

我完全希望MS将来也会增加对VB和C++/CLI的支持,但不要指望很快就会打开本机代码和服

本机代码有太多的问题需要克服,特别是在安全性、可靠性等方面。托管代码更易于静态验证,在运行时也更易于控制

如果你对C++代码移植到C语言感到不安,那么请高兴地说,MS并没有强迫你必须移动到Objtovi-C;p>

从我们自己的经验来看,将C++编写成C++的过程实际上比最初期望的要少得多。当然,有一个学习曲线,但你有任何端口。事实上,我们把核心应用程序和数据引擎移植到C语言中,得到了很大的好处,我们重新设计了整个团队,在C语言中进行代码,并将我们的C语言移植到C++,而不是其他方法。到目前为止,我们只将两个模块移植回C++,并通过互操作来从本地代码调用我们的C代码。 请记住,WinPhone是一个全新的平台,使用同类最佳、高效的下一代开发工具和平台。这不是你父亲的酒杯

如果支持C++是你发现最重要的,那么请确保MS知道(尊敬地和专业地)在MSDN论坛和你附近的开发者事件中陈述你的位置。 更新1:2012-12-17:

虽然Windows Chone 7还没有正式支持本地C++,Windows Phone 8现在支持本地C++代码,这样您就可以更容易地将现有的C++代码库(S)移植到Windows Phone 8(以及Windows 8和Windows桌面应用程序)。 虽然Windows8/Phone8平台和API之间目前还没有100%的兼容性,但我预计这两个平台将在接下来的两个版本中越来越集成

这一点尤其正确,因为Windows与微软其他团队之间更紧密合作的关键障碍之一最近离开了公司;)

更新日期2:2014年4月15日:

根据最近的//Bug/2014的公告,现在可以开始在C++和XAML、C/V/XAML或JavaScript和HTML中构建“通用”应用程序,这些程序将运行在Windows 8.1、Windows Phone 8.1和Xbox One上!有关构建Windows Phone 8.1通用应用程序的更多详细信息,

如果MS决定离开这条路径并创建新的应用程序,这是MS的决定,那也没关系。让我们面对事实。Silverlight还没有成功。由于苹果、安卓和RIM,微软失去了相当大的份额。应用程序开发人员只需评估他们自己的应用程序的商业案例,并决定他们是否信任Windows7 phone的共享收益。对于我经营的公司,我们决定不再支持微软Windows phone 7,不是因为这个或其他技术原因,只是因为我们不相信我们对港口的投资会有回报。 如果我们看到这个新平台在市场上取得成功,我们将在未来开始支持苹果、塞班、Andoid和MeeGo。所有这些都支持C/C++并使我们能够重用经验证的应用程序核心。那么,为什么要担心呢。个人技术偏好不应被忽略。如果个人偏好令人担忧,那么我会因为MS的“对我来说”界面难看而将其踢出


理论上,Thomas c++/cli可以与WPF/Silverlight一起使用,其技巧是使用宏定义替换从XAML生成的c,该宏定义可以在代码隐藏文件的主类内部使用。我研究出了这项技术,但没有动力将其超越理论——我很高兴混合语言

至于在逻辑代码的纯安全模式下使用c++/cli,这可能仍然是不可能的,但我很想听听现在有人是如何尝试的。在2008年为Silverlight进行研究时,我发现这令人望而生畏:

我刚刚把Silverlight和C++编译成一个尝试,将MSIL从我的C++项目编译成Silverlight兼容的DLL。好消息是:它可以工作,您可以从Silverlight项目调用此代码。坏消息是:C++编译器显然使用了Silverlight不允许的MSIL指令。 <> P> >如果你尝试这个,即使使用最简单的程序,你也会立即得到一个例外:“强>”操作可能会使运行时不稳定。对我来说,这使得我们很快就不可能看到C++的Silverlight了,因为编译器需要有点不同的行为。

< P>它已经在地平线上了!p> 因此,向windows phone开发者发送了一份关于他们未来的调查 调查中没有提到开发偏好和XNA(A 发送给windows phone开发者的调查-我提到过吗)

然而,他们问:

<>你喜欢在你的手机应用程序中使用C++吗?