Where do you usually have your DirectX SDK folder?

The “DirectX Runtime” is part of the OS, not the “DirectX SDK”. For a very long time, the DirectX SDK was what you downloaded and installed so a developer could get the headers, libraries and tools to write DirectX apps. That all changed in late 2010 when the DirectX SDK was deprecated and the core headers, libraries, and tools were integrated into the Windows SDK version 8.

See Where is the DirectX SDK? and Not So DirectSetup.

Unfortunately, most of the DirectX 11 tutorials and books were written for the old DirectX SDK and never updated for the Windows SDK. They often make use of D3DX11 which is now deprecated (see Living without D3DX for a list of replacements) and either D3DXMath or XNAMath which have both been replaced by DirectXMath.

The best way to get started with DirectX 11 development today is to install Visual Studio 2015 Community, Professional, or a higher edition. For C++ development, you need to add C++ via the custom install which will also add the Windows 8.1 SDK. Then, go check out the DirectX Tool Kit and it’s tutorials. Once you have the basics down, you can go revisit those older tutorials and should be able to follow along using newer tech.

Alternatively, you can install the legacy DirectX SDK and set VS 2012/2013/2015 to use it, but there are a few caveats. First, there’s some known issues installing the legacy DirectX SDK. Second, the include & library path order is inverted. Really there’s only a few cases where you actually need the old DirectX SDK and for Windows 8 you don’t need it. See The Zombie DirectX SDK.

BTW, I hope you are using Windows 8.1 and not Windows 8.0 as Windows 8.0 is no longer supported. See this FAQ.

I’ve cleaned up a lot of the old DirectX SDK samples so they don’t require the legacy DirectX SDK. You can find them on GitHub.

See also DirectX SDKs of a certain age and DirectX SDK Tools Catalog.

With all that said, the default install location for the legacy DirectX SDK is C:\Program Files (x86)\Microsoft DirectX SDK (June 2010) on a 64-bit system or C:\Program Files\Microsoft DirectX SDK (June 2010) on a 32-bit system.

UPDATE:: While it is still a good idea to avoid the legacy D3DX9, D3DX10, and/or D3DX11 utility libraries for new projects, there is now a simpler method for using them that avoids the need to install the legacy DirectX SDK or to rely on the legacy “DirectX End-User Runtime” packages to deploy them. Just use the Microsoft.DXSDK.D3DX NuGet package. See this blog post for more details.

Leave a Comment