用Visual Studio 2017 RC 打开任何C++ 源代码文件夹

[原文发表地址] Open any folder with C++ sources in Visual Studio 2017 RC [原文发表时间] 11/16/2016   随着Visual Studio 2017RC 的发布,我们一直在改进c++源代码中的“打开文件夹”功能。在这次发布的产品中,对于调试器和C++语言服务,我们增加了生成以及更简单配置的支持。 如果你刚刚开始使用“打开文件夹”或者想要更深入的了解这些功能, 可以去C++入门介绍的打开文件功能,在那里已经更新了下面的内容。如果你目前在使用CMake, 可以去看我们的博客介绍Visual Studio的CMake支持。 以下是对Visual Studio 2017的最新RC版本中的“打开文件夹”功能的改进: 读写C++代码 生成C++程序 调试C++二进制文件   阅读并编辑C++代码 环境变量和宏支持。有利于配置C++智能感知和浏览的CppProperties.json 文件,目前对于指定头文件路径和其他属性值支持环境变量扩展功能。语法是将一个环境变量%FOODIR%扩展到${env.FOODIR}。 注意:%WindowsSdkDir% 和%VCToolsInstallDir%未设置为全局环境变量,所以确保从VS2017开发人员命令提示符启动devenv.exe,因为它定义了这些变量。   在此文件内,你还可以访问到内置宏:   ${workspaceRoot}—提供工作区文件夹的完整路径 ${projectRoot}–CppProperties.json放置的文件夹的完整路 ${vsInstallDir}—安装VS2017正在运行实例的文件夹的完整路径   CppProperties.json 智能感知。当你安装了完整的JSON编辑器(它附带有网页开发工作负载),可以通过JSON智能感知在编辑CppProperties.json文件时得到帮助。 C++配置下拉列表。你可以在CppProperties.json文件里创建尽可能多的配置,同时可以从标准工具栏的C++配置下拉列表里轻松的切换这些配置。 CppProperties.json CppProperties.json现在是可选的和默认的。当你打开一个C++源代码文件夹,VS会创建2个默认的配置:调试和发布。这些配置是和我们在VS2015中介绍的单个文件智能感知配置是一致的。   生成C++工程 通过一系列任务集成外部工具。现在你可以对当前工作区中的文件自动构建脚本或者其他任何外部的操作,在IDE里直接作为任务来运行它们。你可以在一个文件上右键单击选择“自定义任务设置” 来配置一个新的任务。 这个操作会在你的工作区中隐藏的.vs文件夹里创建一个新的tasks.json文件和一个新的任务。JSON智能感知是可用的如果你已经安装了JSON编辑器( 它附带有网页开发工作负载)。 默认情况下,可以从解决方案资源管理器中文件的上下文菜单执行任务。对于每一个任务,在上下文菜单的底部你会发现一个新的条目。 Tasks.vs.json…

0

Native-Activity (安卓) 应用开发

[原文发表地址]Developing Native-Activity (Android) applications [原文发表时间]2014/12/5  8:05AM 概述 Visual Studio 2015 预览版(从这里下载)增加了一种功能,作为跨平台移动开发的一部分,即开发人员可以创建安卓Native Activity应用。安卓跨平台中的安卓Native Activity (API 级别为 9)增加了创建纯粹的C/C++应用的功能。同时在后台还有一些隐藏的Java JNI代码,这些设计是为了抽象细节信息,并让细节信息远离开发者。Native Activity应用很受游戏(例如虚幻4)以及图形密集型(OpenGL)应用的欢迎。这篇博文将引导您体验创建一个Native Activity应用,并经历以下开发周期,包括编辑、编译、调试Native Activity代码。当你完成Visual Studio的这个体验的后,我们欢迎您的想法及任何反馈。 入门指南 在开始创建Native Activity应用之前,请先掌握这个体验所需要的跨平台移动工具。如果你还没有掌握请参考这篇博文,它可以帮你获得经验。掌握这个工具后,让我们开始创建OOTB Native-Activity 应用,从‘Visual C++ – Cross Platform’ 节点下选择一个可用的Native Activity 应用模板。 Native-Activity 解决方案 探究创建的这个模板让我们从解决方案的结构开始。从下面的图中可以看到‘HelloNativeActivity’ 方案有‘HelloNativeActivity.NativeActivity’和 ‘HelloNativeActivity.Packaging’ 两个工程。NativeActivity工程用来封装这个方案中的所有具体的C/C++代码。 通过NativeActivity 工程的属性页面,用户可以设置工程的属性例如指定安卓API的级别、库的名称以及平台的工具集。请注意作为我们的跨平台移动启用的一部分,当指定安卓平台时我们已经提供了GLANG工具链(通过本机开发工具包(NDK) 使它可用)支持。这些支持包括增加了在属性页面简单提供‘代码生成’的编译器编译标志、‘优化’、以及”预编译头文件”的使用。 再看一下NativeActivity.Packaging 工程,它是HelloNativeActivity方案的第二个工程,通过调用Ant编译系统来绑定动态共享库并创建一个完整的安卓应(.apk)。因为这是一个NativeActivity方案,所以这个工程没有包含任何 Java代码但是作为Ant编译调用的一部分它可以很好的用来编译Java代码。同时请注意除此之外其它的文件的详细信息,例如安卓Manifest文件(AndroidManifest.xml),这个工程中也包含Ant 编译(build.xml)。 编辑-〉编译-〉调试周期 为了加快编辑-编译-调试周期,因此设计了跨平台移动体验。作为这个体验的一部分,针对安卓平台时,Clang工具链中增加了全面支持智能感应功能。这个是除了其它普通代码创建功能如重构,快速导航等功能外新加的功能。下图描述了在写代码时的不同功能。 接下来我们一起看一下NativeActivity应用的源文件。我们先看main.cpp源文件,‘android_main’ 功能就是任意native-activity应用的入口函数功能,以及运行事件轮询来接收输入事件以及实现其它功能。我们来编辑这个源文件,在特定的调试目标(模拟器/设备)添加以下代码段并运行,记录传感器的数量。你可以把下面这段代码添加在‘if (state->savedState != NULL)’ 条件判断开始之前。  …

0