DirectX Compatibility Confusion


  • I'm looking to write a game for the Windows Store, but I also want to be able to reach the millions of gamers that still run Windows 7.  Is there a way to do this with Visual Studio 2012 and the latest version of DirectX or do I have to get Visual Studio 2010, write for Windows 7, and then port to the Windows Store?  Thanks!

    Wednesday, January 02, 2013 7:45 PM


  • You cannot write a single EXE that can be shipped through the Windows Store -AND- runs on Windows 7. Windows Store applications use a subset of traditional Win32 APIs, and new WinRT APIs. Also to reach the full Windows 8 market, you need to provide an x86 EXE, an ARM EXE, and optionally an x64 EXE. Windows Store apps have a specific deployment and packaging mechanism that is only supported on Windows 8. Windows Store apps run in a restricted security context and therefore have different APIs for accessing user files, network, devices, etc. Windows Store apps have touch-centric UI requirements and make use of UI APIs not available on Windows 7.

    Note that you can fairly easily port DirectX Windows Store ARM applications to Windows phone 8.

    Windows 7 and older versions of Windows can only run Win32 desktop applications. These cannot be obtained directly through the Windows Store. That said, you can (A) use VS 2012 to write Win32 desktop applications that run on Windows 7 as well as write WinRT applications that run on Windows 8, and (B) certain portions of your application can be written in such a way as to be able to compile for both kinds of EXEs which allows you to share a lot of code.

    The recommendation for new Win32 desktop DirectX applications is to use Visual Studio 2012 and the included Windows 8.0 SDK, which is the same toolset you can use to write WinRT Windows Store applications. You should write using DirectX 11.0 and this will work on Windows 8, Windows 7, Windows Vista SP2 with KB 971644. You can also use VS 2010 with the Windows 8.0 SDK to write Win32 desktop applications but you cannot use this toolset to write WinRT Windows Store apps.

    See Dual Use Coding Techniques for Games

    BTW a subset of DirectX 11.1 is available on Windows 7 SP1 via KB2670838.

    Wednesday, January 02, 2013 8:13 PM