Effective Async with Coroutines and C++/WinRT
Fri, 01 Jun 2018 10:00:00 GMT
Learn all about WinRT's async pattern and the way in which coroutines are used to both call and produce async methods. You'll learn how to take advantage of the thread pool and optionally control the calling context.
From Algorithms to Coroutines in C++
Sun, 01 Oct 2017 10:00:00 GMT
It's often said that C++ developers should expunge all naked for loops and replace them with algorithms. Kenny Kerr gets after that goal with his effort to build a range algorithm using C++ coroutines.
Introducing C++/WinRT
Sun, 01 Jan 2017 10:00:00 GMT
C++/WinRT is a standard C++ language projection for the Windows Runtime (WinRT) implemented solely in header files. It lets you both author and consume WinRT APIs using any standards-compliant C++ compiler, and is designed to provide C++ developers with first-class access to the modern Windows API.
Microsoft Pushes C++ into the Future
Fri, 01 Apr 2016 10:00:00 GMT
Visual C++ is ground zero for many new proposals to the C++ language and standard library. Kenny Kerr highlights a few new or improved features in the Visual C++ Update 2 release that he finds particularly compelling.
Coroutines in Visual C++ 2015
Thu, 01 Oct 2015 10:00:00 GMT
Learn how concurrency has been updated in Visual Studio 2015 with an experimental compiler option called /await that unlocks an implementation of coroutines directly supported by the compiler.
Windows Composition Turns 10
Thu, 01 Oct 2015 10:00:00 GMT
Dive into the new Windows composition API with Kenny Kerr. It’s built on the Windows Runtime and provides the foundation for high-performance rendering. And, for the first time, composition works the same whether you’re targeting your multi-display desktop powerhouse or the lowly smartphone in your pocket.
Classy Types in the Windows Runtime
Tue, 01 Sep 2015 10:00:00 GMT
COM is all about interfaces, and while the Windows Runtime is built on COM, it's able to present a classy type system. How is this possible? Kenny Kerr explains.
Windows Runtime Components with MIDL
Sat, 01 Aug 2015 10:00:00 GMT
The Microsoft Interface Definition Language (MIDL) defines interfaces between client and server programs. Kenny Kerr continues his exploration of the Windows Runtime with a look at the MIDL compiler.
Windows Runtime Components
Wed, 01 Jul 2015 10:00:00 GMT
Join Kenny Kerr as he explores the essentials of the Windows Runtime over the next few months, beginning by writing a simple Windows Runtime component.
Windows with C++ - Adding Compile-Time Type Checking to Printf
Fri, 01 May 2015 10:00:00 GMT
Kenny Kerr continues to improve printf in modern C++ by adding compile-time type checking without sacrificing performance.
Windows with C++ - Visual C++ 2015 Brings Modern C++ to Legacy Code
Wed, 01 Apr 2015 10:00:00 GMT
Kenny Kerr revisits the topic of smart handle class templates and explores how to use modern C++ to enhance some old C-style libraries.
Windows with C++ - Using Printf with Modern C++
Sun, 01 Mar 2015 10:00:00 GMT
Kenny Kerr explores how to improve the productivity and reliability of printf without sacrificing performance.
Windows with C++ - COM Smart Pointers Revisited
Mon, 02 Feb 2015 10:00:00 GMT
it’s time to apply some of the modern C++ offered by Visual C++ 2015 to the design of a new smart pointer for COM interfaces, as Kenny Kerr explains.
C++ - Visual C++ 2015 Brings Modern C++ to the Windows API
Fri, 02 Jan 2015 10:00:00 GMT
Kenny Kerr shows you how to implement IUnknown and IInspectable entirely in modern C++, without any language extensions, interface tables, or other macros.
Windows with C++ - DirectComposition: Transforms and Animation
Tue, 02 Sep 2014 10:00:00 GMT
Building on his previous columns on the DirectComposition API and Direct2D, Kenny Kerr shows how easy it is to add some powerful effects to last month’s project using transforms and animation.
Windows with C++ - DirectComposition: A Retained-Mode API to Rule Them All
Fri, 01 Aug 2014 10:00:00 GMT
Kenny Kerr shows how you can use retained-mode APIs to manipulate visuals drawn with Direct2D in a way that’s very appealing to experienced developers.
Windows with C++ - Embracing the Windows Composition Engine
Tue, 01 Jul 2014 10:00:00 GMT
Kenny Kerr explores the Windows composition engine and shows how an alpha-blended window from his previous column can be reproduced using a composition surface rather than a swap chain.
Windows with C++ - High-Performance Window Layering Using the Windows Composition Engine
Mon, 02 Jun 2014 10:00:00 GMT
Kenny Kerr shows how to tap into system capabilities previously inaccessible from applications to produce the layered window effect without compromising performance.
Windows with C++ - Using Databases on Microsoft Azure
Tue, 01 Apr 2014 10:00:00 GMT
First it was ODBC, then it was OLE DB, and more recently the relational data access technology favored by Microsoft has switched back to ODBC. But don't worry, Kenny Kerr explains how modern C++ makes it easy to use this older C-style API to access databases on Azure.
Windows with C++ - Write High-DPI Apps for Windows 8.1
Mon, 03 Feb 2014 10:00:00 GMT
Windows 8.1 brings new life to multi-monitor configurations and lets you develop applications that are per-monitor DPI-aware to give users the best possible resolution. However, few applications have achieved this yet, so Kenny Kerr shows you how.
Windows with C++ - Write High-DPI Apps for Windows 8.1
Mon, 03 Feb 2014 10:00:00 GMT
Windows 8.1 brings new life to multi-monitor configurations and lets you develop applications that are per-monitor DPI-aware to give users the best possible resolution. However, few applications have achieved this yet, so Kenny Kerr shows you how.
Windows with C++ - Using Regular Expressions with Modern C++
Thu, 02 Jan 2014 10:00:00 GMT
Regular expression grammar can humble the most seasoned developer. Kenny Kerr shows how modern C++ lets you produce elegant and efficient abstractions to make the job easier.
Windows with C++ - Exploring Fonts with DirectWrite and Modern C++
Fri, 01 Nov 2013 10:00:00 GMT
Kenny Kerr shows how DirectWrite comes to life with help from Direct2D and modern C++, providing color fonts, hardware-accelerated text rendering, and elegant and efficient code.
Windows with C++ - Rendering for the Windows Runtime
Tue, 01 Oct 2013 10:00:00 GMT
The Windows Runtime application model is optimized for rendering with DirectX. Kenny Kerr shows how to take what you’ve learned in his previous columns about Direct2D and Direct3D rendering and apply it to your WinRT apps.
Windows with C++ - The Windows Runtime Application Model
Thu, 01 Aug 2013 10:00:00 GMT
Kenny Kerr explains how the best way to understand the Windows Runtime abstraction is to get down to the basics, eschewing language projections in favor of standard C++ and classic COM.
Windows with C++ - A Modern C++ Library for DirectX Programming
Mon, 03 Jun 2013 10:00:00 GMT
Kenny Kerr rolls his own header file that developers can use to build apps more easily with Direct2D. Along the way, he challenges those frustrating “C++ is hard” and “DirectX is hard” arguments that he’s tired of hearing.
Windows with C++ - Introducing Direct2D 1.1
Wed, 01 May 2013 10:00:00 GMT
Direct 2D has taken a major step forward, and is now supported on Windows 8, Windows RT, Windows Phone 8 and, now, Windows 7. Kenny Kerr explains how D2D 1.1 works and how to get started using it.
Windows with C++ - Rendering in a Desktop Application with Direct2D
Fri, 01 Mar 2013 10:00:00 GMT
Kenny Kerr looks at the unique relationship between Direct2D and the desktop application window.
Windows with C++ - Creating Desktop Apps with Visual C++ 2012
Fri, 01 Feb 2013 10:00:00 GMT
Our resident C++ expert gets a lot of questions about the language and its relevance to developing desktop apps for Windows in these changing times. He answers those questions here.
Windows with C++ - The Evolution of Threads and I/O in Windows
Wed, 02 Jan 2013 10:00:00 GMT
Explore the evolution of threading in Windows and C++ to understand the threading capabilities in your programs and work with concurrency building blocks.
Windows 8 Networking - Windows 8 and the WebSocket Protocol
Mon, 03 Dec 2012 10:00:00 GMT
Kenny Kerr explores the WebSocket protocol and its relationship to the larger TCP/IP suite. Learn how Windows 8 enables programmers to easily adopt WebSocket in their applications.
Windows with C++ - The Evolution of Synchronization in Windows and C++
Thu, 01 Nov 2012 10:00:00 GMT
Some excellent synchronization primitives in Windows and the state-of-the-art C++ compiler make a compelling toolkit for producing lightweight and scalable concurrency-safe programs, says Kenny Kerr, who explains that there’s still work to be done to improve concurrency in the Standard C++ Library.
Windows with C++ - Back to the Future with Resumable Functions
Mon, 01 Oct 2012 10:00:00 GMT
Kenny Kerr concludes his three-part series on concurrency in C++, and explores an even more fluid approach to writing efficient and composable asynchronous systems.
Windows with C++ - The Pursuit of Efficient and Composable Asynchronous Systems
Tue, 04 Sep 2012 10:00:00 GMT
Kenny Kerr follows up his column on lightweight cooperative multi-tasking by exploring how C++ might directly support asynchronous programming in a more natural and composable way.
Windows with C++ - Lightweight Cooperative Multitasking
Wed, 01 Aug 2012 10:00:00 GMT
Kenny Kerr describes a technique—ideal for very lightweight concurrency—to write asynchronous code in C or C++ without the use of a runtime (such as those provided by Visual C++ and Windows).
Windows with C++ - Thread Pool Timers and I/O
Wed, 30 Nov 2011 10:00:00 GMT
Kenny Kerr finishes his series on the Windows 7 thread pool by delving into the two remaining callback-generating objects provided by the API—timer objects and I/O completion objects.
Windows with C++ - Thread Pool Synchronization
Wed, 26 Oct 2011 10:00:00 GMT
Blocking operations are bad news for concurrency. You need a way for the thread pool to wait on your behalf without affecting its concurrency limits. It can then queue a callback once the resource is available or the time has elapsed. Along with work objects, the thread pool API provides a number of other callback-generating objects. Here, Kenny Kerr shows how to use wait objects.
Windows with C++ - Thread Pool Cancellation and Cleanup
Mon, 26 Sep 2011 10:00:00 GMT
Cancellation and cleanup are notoriously difficult problems to solve when it comes to multi-threaded applications. However, the thread pool environment enables cleanup groups, which make the thread pool’s objects and callbacks more manageable, as Kenny Kerr details.
Windows with C++ - The Thread Pool Environment
Fri, 09 Sep 2011 10:00:00 GMT
Our resident C++ guru continues his exploration of the thread pool, this month examining objects that control the environment in which callbacks execute.
Windows With C++ - The Windows Thread Pool and Work
Fri, 29 Jul 2011 10:00:00 GMT
Concurrency means a lot of different things to different people, but at the heart of any contemporary approach is some kind of a thread pool. Here, Kenny Kerr explains how to best use the Windows thread pool API.
Windows with C++ - C++ and the Windows API
Thu, 30 Jun 2011 10:00:00 GMT
Kenny resumes his monthly column with MSDN Magazine with a fresh new approach to Windows programming with C++. In this first installment you will learn how to manage Windows API resources in a way that is natural for the contemporary C++ developer. This is a critical first step in becoming a productive Windows developer.
Windows with C++ - Layered Windows with Direct2D
Mon, 14 Dec 2009 10:00:00 GMT
Layered windows provide the unique ability to compose a window on the desktop using per-pixel alpha blending. We take a look at how you can implement this drawing technique in Direct2D.
Windows with C++ - Windows Web Services
Mon, 16 Nov 2009 10:00:00 GMT
With the introduction of the Windows Web Services (WWS) API, C++ developers no longer have to think of themselves as second-class citizens in the world of Web Services. In this article, the author explores the features and benefits that the WWS API has to offer.
Windows With C++ - Drawing with Direct2D
Fri, 14 Aug 2009 10:00:00 GMT
In this article, the author shows you how to draw with Direct2D by introducing Direct2D’s color structure and its various types of brushes.
Windows With C++ - Introducing Direct2D
Mon, 18 May 2009 10:00:00 GMT
If you want to develop high-performance and high-quality commercial applications, you’ll still look to C++ and native code. Direct2D will help you deliver the graphics power you need.
Windows With C++ - The Virtual Disk API In Windows 7
Thu, 19 Mar 2009 10:00:00 GMT
This month we look inside the Windows 7 beta to examine the Virtual Disk API and the Microsoft Virtual Hard Disk (VHD) format.
Windows With C++ - Visual C++ 2010 And The Parallel Patterns Library
Fri, 23 Jan 2009 10:00:00 GMT
The Parallel Patterns Library allows you to more easily take advantage of parallelism. See what this and other Visual C++ 2010 features are in store.
Windows With C++ - X64 Debugging With Pseudo Variables And Format Specifiers
Wed, 19 Nov 2008 10:00:00 GMT
This month we explain how pseudo variables and format specifiers provide a wealth of information for use in debugging.
Windows with C++ - Exploring High-Performance Algorithms
Fri, 19 Sep 2008 10:00:00 GMT
See how you can gain efficiency in surprising ways by looking closely at your algorithms, the data they operate on, and the hardware you’re designing for.
Windows with C++ - Asynchronous WinHTTP.
Tue, 29 Jul 2008 10:00:00 GMT
This month's column explains how to use Windows HTTP Services, or WinHTTP, the new, powerful API for implementing HTTP clients.
Windows with C++ - Decoding Windows Vista Icons with WIC
Thu, 22 May 2008 10:00:00 GMT
In this month's installment, Kenny Kerr sings the praises of the new Visual C++ 2008 Feature Pack, which brings modern conveniences to Visual C++.
C++ Plus - Beef Up Windows Apps with the Visual C++ 2008 Feature Pack
Thu, 17 Apr 2008 10:00:00 GMT
Kenny Kerr sings the praises of the new Visual C++ 2008 Feature Pack, which brings modern conveniences to Visual C++.
Windows with C++ - Windows Imaging Component Basics
Mon, 14 Apr 2008 06:17:18 GMT
Windows Imaging Component (WIC) is an extensible framework for encoding, decoding, and manipulating images. See how to use WIC to encode and decode different image formats.
Windows with C++ - Windows Services Enhancements
Wed, 23 Jan 2008 10:00:00 GMT
Windows Vista and Windows Server 2008 bring some significant changes that make it simpler to produce services that are more secure and responsive.
Windows with C++ - Windows Template Library 8.0
Wed, 24 Oct 2007 10:00:00 GMT
Kenny Kerr takes a look at Windows Template Library (WTL) support for new Windows Vista control enhancements, including task dialogs, Aero wizards, and open file dialogs.
Windows with C++ - Task Scheduler 2.0
Wed, 19 Sep 2007 10:00:00 GMT
The new Task Scheduler in Windows Vista can do so much more than previous versions. We introduce some basic concepts and building blocks you can put to use in your own scheduled task projects.
Windows with C++ - Windows Vista Control Enhancements
Tue, 19 Jun 2007 10:00:00 GMT
With the release of Windows Vista, C++ developers will be happy to know there's plenty of magic left to perform. This new column will provide the necessary insight.
Security - Applying Cryptography Using The CNG API In Windows Vista
Tue, 22 May 2007 10:00:00 GMT
Cryptography Next Generation (CNG) is meant to be a long-term replacement for the CryptoAPI, providing replacements for all of the cryptographic primitives it offered.
XmlLite - A Small And Fast XML Parser For Native C++
Tue, 13 Mar 2007 10:00:00 GMT
XmlLite provides a high-performance, low-overhead XML reader and writer geared for applications written in native C++. Learn more here.
Beyond WinFX - Transactions, Aero Wizards, And Task Dialogs In Windows Vista
Thu, 08 Jun 2006 10:00:00 GMT
App Lockdown - Defend Your Apps and Critical User Info with Defensive Coding Techniques
Tue, 19 Oct 2004 10:00:00 GMT
Whether you're storing database connection strings, user credentials, or logon info, you'll need to practice good defensive programming techniques to avoid those surprise situations in which your data is exposed. In this article, author Kenny Kerry shows you how.