-怎么使用微软的CRESTSDK

怎么使用微软的CRESTSDK

有想学习c/c 编程的小伙伴可以私信小编哦~

微软的SDK已经出来很久了,有些小伙伴都曾经使用过,但是呢,还是有更多小伙伴没有能够弄清楚,今天我么就来看看在VS2013中怎么使用微软的SDK吧!

SDK让你可以在C 中使用REST服务

Visual Studio 2013中包括了C REST SDK version 1.0(也称为Casablanca)。这个微软的开源项目包括在CodePlex中,这个项目同时也利用了c 11中的新特点,设计了现代、异步、多平台API,从而简化了基于云端的编程。这是两篇关于C REST SDK系列文章的第一篇,我会介绍如何通过SDK来使用REST服务。在下一篇文章中,我将介绍怎样利用SDK来检索和发送JSON文件。

理解C REST SDK结构

当你需要最佳性能时,你往往会在本地进行评估,那么C 就是最佳选择之一。微软认为C 在云端也是很有价值的,微软最新的C REST SDK使得开发者可以通过C 来调用REST服务,从而满足高性能和可扩展的要求。它让你在C 中就可以调用REST服务或者是编写其他与云计算相关的代码。

如果你正在使用C 来调用云端服务,但是你在回调函数中使用基于C语言的同步API,那么你没用充分利用最新C 版本的高明之处。同时,你的代码可能会很难阅读和调试,同步的API使得你很难设计一个反应敏捷的用户界面(UI)。大部分现代的WEB API都尽量减少不必要的样板,并且提供异步方法。这些方法避免了C风格的回调函数的复杂性。

比如,你正在使用C ,但是你利用它,通过调用一个同步的基于C的API,来进行HTTP的GET调用,那么这样做的效率是不能和其他编程语言比如C#、Python相提并论的。微软基于并行模式库PPL研发了C REST SDK,并且利用了PPL的基于任务编程模型。无论何时,你利用C REST SDK执行异步操作,你都创建了一个新的PPL任务。为了让C REST SDK可以移植到Linux平台上,微软确保PPL的关键部分可以在Linux上运行(并且使用GCC编译)。因此,C REST SDK为依赖C 11的C 提供了一个并发运行环境。不同于使用回调函数,你可以优雅地编写C 11标准的代码来创建任务并且在其他任务执行完毕后,调度任务。如果你之前有过PPL的编程经验,你会发现使用C REST SDK非常简单。

C REST SDK基于如下的四个底层栈或是API,这些栈或是API是基于不同操作系统提供的服务。(见Figure1)

WinHTTP:也称为Microsoft Windows HTTP Services. 这是一个基于C语言的HTTP客户端API。PPL( Parallel Patterns Library的简称): 构成异步操作的编程模型。C REST SDK 在不同的Windows版本中使用WinHTTP 。Boost.Asio: 跨平台的C 库,可以用于网络编程或是底层的I/O编程。它提供了一致的异步模型。该库采用现代C 方法。 C REST SDK 使用Boost.Asio 在Linux平台上管理通信。HTTP.sys: Windows 服务器端的HTTP。C REST SDK 在不同的Windows版本中使用 HTTP.sys。

目前(写成本文时),C REST SDK支持以下操作系统。特别注意,对Windows XP 系统和Windows Phone 8.x系统的支持,还在试验阶段。

Windows XPWindows VistaWindows 7Windows 8.xWindows Phone 8.xLinux

C REST SDK还包括如下部分,这些功能使用了不同的底层栈(见Figure 2):

Asynchronous streams and stream buffers(异步流和流缓冲区):这部分提供了一种基本的异步流,一种基本的异步流缓冲区,以及许多实现,比如异步文件流。有一些特定的互操作流,可以支持STL iostreams和C REST SDK异步流之间的互相操作。HTTP client and listener(HTTP客户端与监听):HTTP客户端允许你获得与HTTP服务的连接,并且向服务器发送请求。 HTTP监听让你可以从指定的URI接收信息。JSON parser and writer(JSON解析和写入): JSON对于像C 之类的静态语言是一个挑战。 C REST SDK 中使用一个单独的类(web::json::value)来表示JSON值,并且提供了必要的操作来帮助数据序列化 。你可以在代码执行阶段,声明与JSON数值相关的类型。 C REST SDK 允许你通过JSON解析从流中读取JSON数据,以及向流中写入JSON数据。TCP client and listener(TCP客户端与监听):TCP客户端为TCP网络服务提供了客户端连接。TCP监听会持续监听TCP客户端的网络连接。TCP客户端与监听的最大优势在于,可以完成非阻塞异步操作。但是,这些组件仍然在实验阶段。如果你要使用System.Net.Sockets::TcpListener或者System.Net.Sockets::TcpClient类,你要适应使用实验版的TCP客户端和监听,以及它们提供的简单的非阻塞异步操作。

微软的C REST SDK团队计划在不久的将来,在系统中增加如下部分:

Web Sockets client and listener. WEB Socket客户端与箭筒UDP client and listener. UDP 客户端与监听Additional product-specific APIs built on top of the C REST SDK, such as Azure Storage, Mobile Services, and Bing Maps. 基于C REST SDK的其他产品专用API,比如Azure存储,移动服务和Bing地图。

在Visual Studio 工程中使用C REST SDK

在Visual Studio中创建使用SDK的项目并且成功生成该项目,你需要从CodePlex(http://casablanca.codeplex.com/)下载并安装最新的SDK。在本文中,使用的是1.3版本。如果你下载的不是这一版本,你要在相应的配置值上做出调整。

版本1.3中默认的安装文件夹是C:Program Files (x86)Microsoft Cpp REST SDK for VS 2013 v1.3SDK.VSProject子文件夹下有两个属性文件与你的Visual Studio工程相对应:CppRest.propsandversion.props.

当你在Visual Studio中创建了你准备使用C REST SDK的工程之后,你必须按照下列步骤操作:

将C REST SDK安装文件夹下的两个属性文件,即VSProject子文件夹中的CppRest.props以及version.propswe文件,复制到你创建Visual Studio项目的主文件夹中。打开cpprest.props属性文件,其中的两个属性问价可能有错误值:CppRestSDKPathandCppRestRuntimeBaseFileName.如下图所示,如果你找到了下面的两行,你要将其中110替换为120。在64-bit的Windows版本中,规定了C REST SDK基本安装文件夹的属性值是InstallDir,这个属性值在HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftCppRestSDKOpenSourceRelease120v1.3SDK中.不幸的是,一些SDK版本不会检查属性值,如果你不用上述的120替换掉110这个值,就不能成功生成对应工程。因为,不替换对应值的话,在生成项目的过程中,找不到正确的注册表入口。C REST SDK中提供的样例,也存在这样的问题,因此你必须在属性文件中替换相应值,才能正确生成项目文件。

未修改属性文件:

$([MSBuild]::GetRegistryValue(`HKEY_LOCAL_MACHINESoftwareMicrosoftCppRestSDKOpenSourceRelease110v$(CppRestSDKVersionString)SDK`, `InstallDir`))

$(CppRestBaseFileName)110$(DebugFileSuffix)_$(CppRestSDKVersionFileSuffix)

修改后的属性文件:

$([MSBuild]::GetRegistryValue(`HKEY_LOCAL_MACHINESoftwareMicrosoftCppRestSDKOpenSourceRelease120v$(CppRestSDKVersionString)SDK`, `InstallDir`))

$(CppRestBaseFileName)120$(DebugFileSuffix)_$(CppRestSDKVersionFileSuffix)

现在,打开在你喜欢的文本编辑器中,打开你的C 项目对应Visual Studio 中的vcxproj文件,在Project中加入下面一行。这样,你的项目就可以包含CppRest.props中的定义。值得注意的是,CppRest.props中有一行是引入已经拷贝的CppRest.props配置文件:在Visual Studio中打开对应项目,打开项目属性。在Configuration Properties | VC Directories中的include Directories属性中加入C REST SDK安装路径下include子文件夹的完整路径。如果你使用的是默认安装文件夹,你需要添加的属性值为C:Program Files (x86)Microsoft Cpp REST SDK for VS 2013 v1.3SDKinclude。在Configuration Properties | VC Directories中Library Directories属性中加入C REST SDK安装路径下lib子文件夹的完整路径.如果你使用的是默认安装文件夹,那么你需要添加的属性值为C:Program Files (x86)Microsoft Cpp REST SDK for VS 2013 v1.3SDKlib.添加C REST SDK库。具体来说,在Configuration Properties | Linker | Input中的Additional Dependencies加入cpprest120d_1_3.lib文件。

现在,你的C 项目就可以开始和C REST SDK一起工作了。(你也可以在 Package Manager Console控制台,通过运行命令Install-Package cpprestsdk来安装最新版本的C REST SDK,同时,使用相应包来向已经建立的项目添加C REST SDK并完成相应设置。但是,在新项目中使用最新版本SDK的最佳方法,是按照上文所述的步骤进行配置和添加。)

最后,小编在说一句,有需要VS2013或者VS2017学习c/c 编程的小伙伴可以私信我哦~小编这里有免费资源可以送给你的!

流畅运行VS2017需要什么配置啊?我电脑现在4G内存,500G硬盘,需要升级什么啊

vs2017安装支持的硬件配置:

1.8 GHz 或更快的处理器。使用双核或更好的内核.

2 GB RAM;建议 4 GB RAM(如果在虚拟机上运行,则最低 2.5 GB)

硬盘空间:高达 130 GB 的可用空间,具体取决于安装的功能;典型安装需要 20-50 GB 的可用空间。

视频卡支持最小显示分辨率 720p (1280×720);Visual Studio 最适宜的分辨率为 WXGA (1366×768) 或更高。

电脑4G内存,500G硬盘可以流畅运行VS2017。

扩展资料:

vs2017安装支持的操作系统:

1、Windows 10 1507 版或更高版本:家庭版、专业版、教育版和企业版(不支持 LTSC 和 Windows 10 S)

2、Windows Server 2016:Standard 和 Datacenter

3、Windows 8.1(带有更新 2919355):核心版、专业版和企业版

4、Windows Server 2012 R2(带有 Update 2919355):Essentials、Standard、Datacenter

5、Windows 7 SP1(带有最新 Windows 更新):家庭高级版、专业版、企业版、旗舰版

VS2017报错 MSB803MSB8036 找不到 Windows SDK 版本8.1

VS2017报错 MSB803MSB8036 找不到 Windows SDK 版本8.1是因为没有点击直接选择“选择文件夹”,步骤如下:

1、首先第一步就是进行打开“VS2017”,点击“项目”,打开“项目属性”如下图所示。

2、接着就是进行配置属性,选择“C/C++”即可。

3.、然后就是进行选择“常规”,如下图所示。

4、接着就是要进行点击“下拉”,如下图所示。

5、这时候再进行选择“编辑”即可。

6、接着就是进行附加包含目录,点击“*文件夹”如下图所示。

7、然后就是进行点击“…..”,再进行直接选择“选择文件夹”即可。

8、最后就是可以看到头文件路径添加完成,就找到了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注