Category Archive for Software Development

C++ AMP Open Specification Published

As promised, Microsoft has released an open specification of C++ AMP: Accelerated Massive Parallelism :)
This allows other compiler vendors to implement support for C++ AMP on any platform.

Read the official announcement.

Download the specification.

Share

Mandelbrot Using C++ AMP

It is time to start taking advantage of the computing power of GPUs…

A while ago I wrote an article about how to use the Microsoft Parallel Patterns Library (PPL) to render the Mandelbrot fractal using multiple CPU cores. That article can be found here.

This new article will make the Mandelbrot renderer multiple times faster by using a new Microsoft technology called C++ AMP: Accelerated Massive Parallelism, introduced in the Visual C++ 11 Preview.

Read the rest of this entry »

Share

How to programmatically toggle the visibilty of the desktop icons

The following code will toggle the visibility of the desktop icons, and will update the checkmark in the menu when you right click the desktop.

HWND GetDesktopHWND()
{
  HWND hProgman = FindWindow(_T("Progman"), 0);
  if (hProgman)
    return FindWindowEx(hProgman, 0, _T("SHELLDLL_DefView"), 0);

  return NULL;
}

void ToggleDesktopIcons()
{
  HWND hWndDesktop = GetDesktopHWND();
  if (hWndDesktop)
    SendMessage(hWndDesktop, WM_COMMAND, 0x7402, 0);
}
Share

Call for C++ Community folks in Belgium – January 10th meeting

I’m going to try to get a C++ User Group going in Belgium, and got support from the Microsoft Developer Network (MSDN) Belux Team :)
Here is the official call for action:

Are you passionate about C++ and interested in finding like-minded people? Feel like coming together, setting an informal User Group in 2012? We’d like to support you in that and have a call to action for you.

Marc Gregoire, C++ MVP and author of the book Professional C++, 2nd Edition is one of the folks passionate about the technology and interested in starting up a more active C++ community in Belgium. Are you interested? Join Marc and the MSDN Belux Team for an informal discussion at the Microsoft office in Zaventem on Tuesday January 10th 2012 at 6:30 PM.

Contact Marc through email, leave a note on the MSDN Belux Team blog or reach out to Katrien De Graeve from MSDN Belux via her Twitter and we’ll see you in January.

If you are looking for some of the other Microsoft technology communities there is the full listing here: http://msdn.microsoft.com/nl-be/cc196311.

Share

Introduction to WIC: How to use WIC to load an image, and draw it with GDI?

The Windows Imaging Component (WIC) is a flexible and robust API for working with images on Windows. The API is extensible. Third-party vendors can create new image codecs (readers and writers) to make new image formats available to all applications that use the WIC API. Here is a brief description from the MSDN:

The Windows Imaging Component (WIC) provides an extensible framework for working with images and image metadata. WIC makes it possible for independent software vendors (ISVs) and independent hardware vendors (IHVs) to develop their own image codecs and get the same platform support as standard image formats (for example, TIFF, JPEG, PNG, GIF, BMP, and HDPhoto). A single, consistent set of interfaces is used for all image processing, regardless of image format, so any application using the WIC gets automatic support for new image formats as soon as the codec is installed. The extensible metadata framework makes it possible for applications to read and write their own proprietary metadata directly to image files, so the metadata never gets lost or separated from the image.

The MSDN states the primary features of WIC as follows:

  • Enables application developers to perform image processing operations on any image format through a single, consistent set of common interfaces, without requiring prior knowledge of specific image formats.
  • Provides an extensible “plug and play” architecture for image codecs, pixel formats, and metadata, with automatic run-time discovery of new formats.
  • Supports reading and writing of arbitrary metadata in image files, with the ability to preserve unrecognized metadata during editing.
  • Preserves high bit depth image data, up to 32 bits per channel, throughout the image processing pipeline.
  • Provides built-in support for most popular image formats, pixel formats, and metadata schemas.

WIC comes with the following standard built-in codecs:

  • BMP (Windows Bitmap Format), BMP Specification v5.
  • GIF (Graphics Interchange Format 89a), GIF Specification 89a/89m
  • ICO (Icon Format)
  • JPEG (Joint Photographic Experts Group), JFIF Specification 1.02
  • PNG (Portable Network Graphics), PNG Specification 1.2
  • TIFF (Tagged Image File Format), TIFF Specification 6.0
  • Windows Media Photo, HD Photo Specification 1.0

All codecs can both load and save the specific image format, except the ICO codec which can only load icon files and not save them.

Reading all this, it looks like WIC is pretty powerful, and the best part is that it’s easy to use as I will demonstrate in this article. Read the rest of this entry »

Share

C++11 Standard Published by ISO

The ISO International Organization for Standardization has now officialy published the C++11 standard :)
Here is part of the press release:

C++, one of the most popular programming languages used in everything from Web browsers to 3D video games, has been fully updated and published as, ISO/IEC 14882:2011, Information technology – Programming languages – C++.

ISO/IEC 14882:2011 defines the programming language and specifies requirements for implementation. Also known as C++11, this is the first major revision of the standard since 1998. Its new features extend C++’s traditional strengths of flexibility and efficiency – for example, lambda functions, move semantics, and variadic templates further enable developers to use powerful expressiveness and strong abstraction to write efficient, high-performance code with full access to the hardware available when needed. Even more, the new C++11 has the convenience and ease of use of other modern languages – from features like auto type deduction and explicit virtual override control, to standard smart pointers that mean never writing delete again.

You can read the complete press release here.

Share

“Professional C++, Second Edition” Featured on the Microsoft VC++ Team Blog

My book “Professional C++, Second Edition”, published by Wiley/Wrox, is now featured in a dedicated post on the Microsoft Visual C++ Team Blog :)
Read the VC++ Team Blog post here.

Share

Windows 8 Developer Preview

By now, virtually everyone on this planet heart about the Windows 8 Developer Preview that was launched a couple of days ago on the Microsoft BUILD conference.
Everyone can download this developer preview. This will give you the opportunity to play and experiment with the new Metro layout for Windows.

The developer preview also includes a preview of Microsoft Visual Studio 11 express edition, which makes it very easy to make Metro style applications in C++, C#, VB.Net, or JavaScript.

Any serious developer should download this preview and learn as much as possible about the new Windows platform.

Go to the BUILD website to download the preview and to download interesting video recordings of the sessions on the BUILD conference.

Share

Work On My Book “Professional C++, Second Edition” Is Finished

I just finished everything for my book “Professional C++, Second Edition” by Wiley/Wrox :)
I think it will go on sale maybe around October, I don’t know the exact date yet.
After a bit more than a year of work, it’s finished :D
It was really a huge amount of work, but it was definitely worth it, and a very interesting experience.

Here is the official link.

Share

C++11 Now the Confirmed Name

Yesterday, I wrote a post about the fact that C++0x was unanimously approved.
Today, we got confirmation from Geneva that they will officially publish the new C++ standard in a matter of weeks with the name “ISO/IEC 14882:2011(E) Programming Languages — C++, Third Edition“, which means we can start calling it C++11

See also Herb Sutter’s update on his blog.

Now I can finalize the last pieces for my “Professional C++, Second Edition” book (Wiley/Wrox).

This is a great day for the C++ world! :)

Share

C++0x Unanimously Approved

The new C++ standard has been unanimously approved and is now an international standard.
It can still take a few months before it’s officially published, so the question still remains whether it will be called C++11 or C++12. I for sure hope it will be C++11 :)
Here is Herb Sutter’s blog post about it.

Share

Microsoft’s All In One Code Framework

Just a small post to let you all know about the All In One Code Framework from Mircosoft. Description from Microsoft:

The Microsoft All-In-One Code Framework is a free, centralized code sample library driven by developers’ needs. The goal of the All-In-One Code Framework is to provide typical code samples for all Microsoft development technologies, and reduce developers’ efforts in solving typical programming tasks.

Our team listens to developers’ pains in the MSDN forums, social media and various developer communities. We write code samples based on developers’ frequently asked programming tasks, and allow developers to download them with a short code sample publishing cycle. Additionally, our team offers a free code sample request service. This service is a proactive way for our developer community to obtain code samples for certain programming tasks directly from Microsoft.

For more information on the Microsoft All-In-One Code Framework, visit our YouTube channel or download at http://1code.codeplex.com/.

Share

Visual Studio 2010 Service Pack 1

Microsoft has released Visual Studio 2010 Service Pack 1.
MSDN subscribers can download it right now.
It will be publicly available on 10th of March.
See Soma Segar’s blog for details on what is included/changed with SP1.

Share

Introduction to the Standard Template Library

Stephan T. Lavavej (aka STL :) ) from Microsoft has created a series of Channel 9 video presentations discussing several aspects of the STL. They serve as a very good introduction to using the Standard Template Library.

I found them very interesting :)

Share

Introducing the Windows Kernel Transaction Manager, Transactional NTFS and Transactional Registry

Windows Vista and later versions of Windows have a so called Kernel Transaction Manager (KTM). This makes it easy for application to use transactions. There are two big components built on top of the KTM: Transactional NTFS (TxF) and Transactional Registry (TxR). With TxF you can combine several file system operations into a transaction and either commit or rollback the transaction as a whole. TxR allows you to do the same thing with registry manipulations. File system transactions and registry transactions can be grouped into a single transaction. That way we can ensure that all file system modifications and all registry modifications are fully executed or none at all.

I wrote an article that gives a very brief overview of TxF and TxR to give you an idea of what you can accomplish with it. Creating your own transaction manager other than TxF or TxR is also possible but requires you to create a Win32 transaction aware service (= resource manager) which is outside the scope of this introductory article. You can read the full article on codeguru.com.

Share

The New MFC Animation API

Introduction

Microsoft Visual Studio 2010 Service Pack 1 includes a number of enhancements and new features for MFC developers. One of those changes is an animation API to make it easy for you to create animations in MFC applications. This article will briefly introduce this animation API.
This articles was also posted on Codeguru.com.
Read the rest of this entry »

Share

Visual Studio 2010 SP 1 Beta

Microsoft has released Visual Studio 2010 SP1 Beta. It’s available right now for MSDN subscribers and will be available to everyone on Thursday.

It includes a new help viewer that I mentioned in my previous blog entry and “Win7-specific MFC APIs to support use of Direct2D, DirectWrite, and Windows Animation Technologies”. I can’t wait to try those out :)

Get more details here.

Share

Visual Studio 2010 SP1 – Help Viewer

Microsoft is planning to include a new help viewer with Visual Studio 2010 SP1, which is long overdue :)

You can see a presentation here.

Share

Free eBooks Related to Microsoft Technologies

Here is a list of free eBooks related to Microsoft technologies.

Enjoy :)

Share

Native C++ Development is Still Being Used

I just stumbled upon an article mentioning that Evernote abandoned WPF and the Microsoft .NET framework and rewrote their application from scratch in native C++ code :) The official reason given:

The blurry fonts, slow startup times, large memory footprint, and poor support for certain graphics cards were all issues that the technology behind 3.5 was incapable of resolving. As a result, we ended up chasing down platform bugs rather than adding the great features our users wanted.

Read the article here.

Share