{"id":6463,"date":"2015-03-26T17:41:00","date_gmt":"2015-03-26T17:41:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2015\/03\/26\/visual-c-tools-for-windows-10-technical-preview\/"},"modified":"2021-10-06T14:39:04","modified_gmt":"2021-10-06T14:39:04","slug":"visual-c-tools-for-windows-10-technical-preview","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/visual-c-tools-for-windows-10-technical-preview\/","title":{"rendered":"Visual C++ Tools for Windows 10 Technical Preview"},"content":{"rendered":"<p>Earlier this week we <a href=\"http:\/\/blogs.msdn.com\/b\/somasegar\/archive\/2015\/03\/23\/visual-studio-tools-for-windows-10-technical-preview.aspx\"><span style=\"color:blue;text-decoration:underline\">announced<\/span><\/a> the availability of the first preview of the Visual Studio 2015 tools for building Windows 10 applications.  C++ continues to be an important language for building Windows apps and in this blog post, we want to highlight some C++ specific functionality for Windows 10 app development.\n<\/p>\n<h2>Windows universal apps\n<\/h2>\n<p>You will find some new C++ project templates which can be used to get started with creating Windows universal apps:\n<\/p>\n<p>\n<a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/0878.032715_1826_VisualCTool1.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/0878.032715_1826_VisualCTool1.png\" alt=\"Image 0878 032715 1826 VisualCTool1\" width=\"572\" height=\"428\" class=\"aligncenter size-full wp-image-29369\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/0878.032715_1826_VisualCTool1.png 572w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/0878.032715_1826_VisualCTool1-300x224.png 300w\" sizes=\"(max-width: 572px) 100vw, 572px\" \/><\/a>\n\t<\/p>\n<h2>API Contracts\n<\/h2>\n<p>Windows 10 tools allow you to create universal apps through the usage of API contracts (described <a href=\"http:\/\/blogs.windows.com\/buildingapps\/2015\/03\/23\/windows-10-developer-tooling-preview-now-available-to-windows-insiders\/\"><span style=\"color:blue;text-decoration:underline\">here<\/span><\/a>).  This enables you to start checking, at runtime, if a Windows feature is available on the device before you call a related API, as in the code example below:\n<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/7725.032715_1826_VisualCTool2.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/7725.032715_1826_VisualCTool2.png\" alt=\"Image 7725 032715 1826 VisualCTool2\" width=\"829\" height=\"59\" class=\"aligncenter size-full wp-image-29370\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/7725.032715_1826_VisualCTool2.png 829w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/7725.032715_1826_VisualCTool2-300x21.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2015\/03\/7725.032715_1826_VisualCTool2-768x55.png 768w\" sizes=\"(max-width: 829px) 100vw, 829px\" \/><\/a>\n\t<\/p>\n<p>Functionality for API contracts has been enabled in both the C++ compiler and the build system.\n<\/p>\n<h2>C++ Runtime Dependencies for Universal Apps\n<\/h2>\n<p>Just like existing Windows Store apps, Windows 10 universal apps written using C++ will also rely on the concept of <a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2012\/09\/28\/10354327.aspx\"><span style=\"color:blue;text-decoration:underline\">framework packages<\/span><\/a> to satisfy their runtime dependency on C++ Libraries.  As of this preview release however, we have provided a makeshift mechanism through which the requisite C++ Runtime DLLs are copied directly into the app packages and are deployed along with the app.  This is only a temporary workaround and we will revert to using framework packages in future.\n<\/p>\n<p>Do note that the work that we have done for the <a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2015\/03\/03\/introducing-the-universal-crt.aspx\"><span style=\"color:blue;text-decoration:underline\">Universal CRT<\/span><\/a>, also benefits universal apps.  Since these apps are built using the VC++ 2015 toolset, they will now rely on Universal CRT and will always find it in the Windows 10 operating system itself.\n<\/p>\n<h2>Windows SDK(s)\n<\/h2>\n<p>Some of you might have already installed <a href=\"http:\/\/go.microsoft.com\/fwlink\/p\/?LinkId=526725\"><span style=\"color:blue;text-decoration:underline\">Visual Studio 2015 CTP6<\/span><\/a> prior to the above announcement.  If you haven&#8217;t yet installed the Windows 10 tools, then any Windows Desktop C++ app project (MFC, Win32, Console etc.) will build using the Windows 8.1 SDK which is a part of VS2015 CTP6 and can be found under this location:\n<\/p>\n<p style=\"margin-left: 27pt\"><span style=\"font-family:Consolas;font-size:10pt\">{Program Files (x86)}\\Windows Kits\\8.1\n<\/span><\/p>\n<p>However, when you additionally install the <a href=\"http:\/\/go.microsoft.com\/fwlink\/p\/?LinkId=526226\"><span style=\"color:blue;text-decoration:underline\">Tools for Windows 10 Technical Preview<\/span><\/a>, it comes with the new Windows 10 SDK (Preview) found under:\n<\/p>\n<p style=\"margin-left: 27pt\"><span style=\"font-family:Consolas;font-size:10pt\">{Program Files (x86)}\\Windows Kits\\10\n<\/span><\/p>\n<p>Windows 10 SDK provides a number of new API, several of which are available even outside the context of Universal apps i.e. even Desktop apps can use them.  Therefore in order to facilitate easy experimentation with Windows 10 SDK, we have changed the behavior of VS2015 CTP6 to switch to using the Windows 10 SDK for all Windows Desktop app projects (MFC, Win32, Console etc.).  This switching happens only if the Windows 10 SDK is installed, otherwise it defaults to using the Windows 8.1 SDK.\n<\/p>\n<p>This is just a brief introduction to some of the changes we are making for Universal app development experience for C++.  Over the next few months we will be talking more about some C++ specific work we have done and are planning to do in this area.  We hope you will try these tools out and let us know if you have any feedback or questions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Earlier this week we announced the availability of the first preview of the Visual Studio 2015 tools for building Windows 10 applications. C++ continues to be an important language for building Windows apps and in this blog post, we want to highlight some C++ specific functionality for Windows 10 app development. Windows universal apps You [&hellip;]<\/p>\n","protected":false},"author":263,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus"],"acf":[],"blog_post_summary":"<p>Earlier this week we announced the availability of the first preview of the Visual Studio 2015 tools for building Windows 10 applications. C++ continues to be an important language for building Windows apps and in this blog post, we want to highlight some C++ specific functionality for Windows 10 app development. Windows universal apps You [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/6463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/263"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=6463"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/6463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=6463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=6463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=6463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}