0
\$\begingroup\$

I need to use the extended DirectX-Library (D3DX...), but I am programming on Windows 8 (VS), so the DirectX 11-SDK is already included. However, it's included without the extension-library.

Do I have to download the June 2010 SDK? If so, how do I set up VS to work with the extended library?

\$\endgroup\$
2
\$\begingroup\$

The D3DX 11 library has been discontinued so if you want to use it you will have to download the 2010 SDK and install it. (If paths are not already set up, you will have to set the library and include paths for your project to the folder where the SDK installs (somewhere in Program Files (x86) IIRC).

However, if you want functionality similar to that of the D3DX library, try the DirectXTK (http://directxtk.codeplex.com) which is designed a bit as a replacement to the D3DX library for D3D11 (with Windows Phone/Windows 8/Xbox One support)

\$\endgroup\$
  • \$\begingroup\$ Thanks for your answer, I installed it successfully and I changed the paths, but the following error occurs: error LNK1104: File "d3dx10.lib" can not be opened. \$\endgroup\$ – Feve Sep 27 '14 at 16:37
  • \$\begingroup\$ Make sure that all your paths are correct, and then make sure that that library is actually in the folder \$\endgroup\$ – CobaltHex Sep 27 '14 at 17:36
  • \$\begingroup\$ The SDK should install a system environment variable that you can use in your VS projects, e.g. $(DXSDK_DIR)Lib\x64. \$\endgroup\$ – MooseBoys Sep 29 '14 at 5:07
0
\$\begingroup\$

All versions of D3DX are deprecated and not included with the Windows 8.x SDK. This is covered on MSDN and on my blog.

Ideally, you should change your program to not use D3DX. A full list of replacements for D3DX functionality can be found here. In summary: If you are on Direct3D 10, port to Direct3D 11. Then use the wide variety of Direct3D 11 support libraries instead of D3DX:

  • DirectX Tool Kit on CodePlex provides replacements for the majority of runtime elements of D3DX such as loading textures, sprite, font, mesh, etc.
  • DirectXTex on CodePlex replaces the texture content processing functionality in D3DX.
  • DirectXMesh on CodePlex replaces the mesh content processing functionality in D3DX.
  • If you are still using the DXUT library, you can use the latest version on CodePlex.
  • If you are still using the Effects 11 library, the latest version is also on CodePlex.
  • There are a number of samples from the legacy DirectX SDK on MSDN Code Gallery.

If given all that advice, you still need to use the legacy D3DX library, or if you are using XAudio 2.7 or XInput1.3 to support Windows 7 or earlier, then you can mix the use of the Windows 8.x SDK and the legacy DirectX SDK. However, the path order for doing this is reversed from previous recommendations for VS 2012 and VS 2013:

(IncludePath);$(DXSDK_DIR)Include

$(LibraryPath);$(DXSDK_DIR)Lib\x86 or $(LibraryPath);$(DXSDK_DIR)Lib\x64

This is covered in detail on MSDN.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.