文档章节

用Visual Studio将Objective-C编译为C++

NoMasp
 NoMasp
发布于 2015/09/08 21:52
字数 738
阅读 24
收藏 0

编译器支持

谷歌和苹果公司都使用Clang作为它们的C++前端。为了使他们的代码运行在Windows上,微软不得不将Visual C++的后端C2和Clang结合起来。

(Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器,源代码发布于BSD协议下。译者注)

IDE支持

在Visual Studio中Objective-C具有语法高亮、代码完成和调试支持等功能。C++和C#文件可以包含在同一个项目中,允许程序来直接跨区域进行调用。编译器将处理所有的细节所以开发者只是看到正常的函数调用的封装处理。

大多数Objective-C项目都作为XCode项目而开始,所以Visual Studio提供了导入该项目类型的能力。VS和XCode项目文件可以存在于同一个项目中,这样你就可以在两种IDE对同一个项目进行开发。

混合模式项目

Windows提供了新的API给Objective-C,例如动态磁贴。为了确保代码可以继续在这两个平台之间共享,微软提供运行时检查来查看Windows API是否可以给很好的调用。或者,你可以使用预处理器指令从共享的代码中将特定平台的代码隔离出来。

运行时行为

默认情况下Windows下的Objective-C运行库检测到应用程序的原始平台来确定它的行为。例如,如果你提供一个iPhone应用程序然后它将默认在一个狭窄的窗口中运行,而iPad应用程序运行在一个正常的窗口中。

所有这些行为可由应用程序在需要时进行重写。

iOS API 兼容性

Windows 10支持iOS API的子集。它不会跟踪特定版本的iOS,但相反在标准中查看哪些APIs经常被使用。对于第一个版本,微软主要关注的APIs包括如下:

游戏:OpenGL,OpenAL以及传感器
UI:UIKit,CooreAnimation,CoreGraphics,CoreText,Touch
Objective-C:ARC,Blocks,Foundation

一些类如共享、通知和StoreKit的特性,开发者需要在保留iOS APIs以及使用Windows的替代方案之间进行选择。如果你选择保留iOS APIs,Windows将会提供一个兼容性层,这样的APIs将能够开始运作。而选择Windows的替代方案的好处在于你可以使用Windows的高级功能。

Swift

微软对于Swift的官方立场是“此时不做评论”。大概也就是说他们想要支持Swift但是目前太忙了,还要继续为Objective-C做准备,而秋天也许会宣布关于Swift的消息。



感谢您的访问,希望对您有所帮助。 欢迎大家关注、收藏以及评论。


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


本文转载自:http://blog.csdn.net/nomasp/article/details/46335843

NoMasp
粉丝 7
博文 334
码字总数 0
作品 0
镇江
程序员
私信 提问
微软承诺将在今年的 Visual C++ 更新中加入 Clang 编译器

微软最近发布将在2015年11月 Visual C++ 更新中加入 Clang 编译器 ,Clang 开源编译器以相比GCC更快的编译速度和更优的错误提示著称。 Clang关于C,C++,及Objective C的编译器,能够生成LLV...

葡萄城控件技术团队
2015/10/27
98
0
在 Visual Studio中 将 Objective-C 编译为 C++

英文原文:Compiling Objective-C into C++ with Visual Studio 曾有人谣传微软 Windows 10 平台将支持运行 Android 程序,没有人会预料到 iOS 应用也将得到同样的支持。目前,微软正结合 C2...

心中
2015/05/08
4K
24
SonarQube C / C++ / Objective-C 3.4 发布

SonarQube C / C++ / Objective-C 3.4 发布,此版本更新内容如下: 41 new rules targeting MISRA-C standard: 70% of MISRA-C 2004 rules are now covered! Visual Studio coverage support......

oschina
2015/02/06
577
0
SonarQube C/C++/Objective-C 4.2 发布

SonarQube C/C++/Objective-C 4.2 发布了,这是一个C/C++/Objective-C的插件,用于检查代码质量。 这个版本提供了以下的新规则: “nonnull” pointers should not be set to null (C, Bug) ...

局长
2016/10/06
1K
0
编译运行别人源码出现Executable For Debug Session对话框要求连接应用程序

vs2010中的TSTCON( ActiveX Control Test Container )工具非自动安装,而是作为一个例程提供。所以应找到该例程,并编译: 如vs2010安装在默认路径则 1, 进入:C:Program FilesMicrosoft Vi...

小青_1989
2014/04/29
520
0

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
6
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
17
0
浅谈java过滤器Filter

一、简介 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断如是否有权限访问页面等。其工作原理是,只要你在web.xml...

青衣霓裳
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部