d3dx11.h no en Windows 8.0 kit

Mi plataforma de desarrollo es windows 7 de 64 bits. He instalado VS2012 y me gustaría compilar un proyecto que incluye algunos Dx11 código.

Específicamente, incluye los siguientes archivos:

#include <d3dx11.h>
#include <d3dx10.h>

y enlaces a

#pragma comment (lib, "d3dx11.lib")
#pragma comment (lib, "d3dx10.lib")

Ya tengo VS2011 instalado en mi máquina de desarrollo, pero quería probar la unidad de laboratorios de pruebas en VS2012 para C++ nativo.

Debido a tener VS2011 instalado y funcionando en DirectShow código, tengo el Windows 7.1 SDK instalado.

VS2012 elegimos este y había referencias a la 7.1 SDK, pero compilación de mi proyecto en VS2012 con el SDK 7.1 hace referencia dio errores:

"warning C4005: '__useHeader' : macro redefinition"

Busqué en google y descubrió una consulta como la mía en social.msdn.microsoft.com. y la solución recomendada vinculación con el Windows 8 kit en lugar de la SDK 7.1 a fin de resolver este problema.

El Windows 8 kit incluye cabeceras como d3d11.h, pero no d3dx11.h.

¿Cómo puedo incluir d3dx11 (desde el Dx SDK), junto con el de windows 8 kit, pero sin conseguir que varios de macro “redefinición” de los errores?

OriginalEl autor fishfood | 2012-09-17

1 respuesta

  1. 17

    Encontré el siguiente bastante molesto cita en esta página de MSDN.

    D3DX no se considera canónica de la API para el uso de Direct3D en Windows
    8 y por lo tanto no se incluye con el correspondiente de Windows SDK.
    Investigar soluciones alternativas para trabajar con la API Direct3D.

    Para el legado de los proyectos, tales como el de Windows 7 (y anteriores) DirectX SDK
    las muestras, los siguientes pasos son necesarios para crear aplicaciones con
    D3DX utilizando el DirectX SDK:


    Modificar el proyecto de directorios de VC++ de la siguiente manera para utilizar el derecho de
    orden para el SDK de cabeceras y bibliotecas.

    yo. Abra las Propiedades del proyecto y seleccione los Directorios de VC++
    página.

    ii. Seleccione Todas las Configuraciones y Todas las Plataformas.

    iii. Conjunto de estos directorios de la siguiente manera:

    Ejecutable Directorios: (a la derecha En el lado del desplegable)

    Incluir Directorios: $(IncludePath);$(DXSDK_DIR)Incluyen

    Incluir la Librería de Directorios de: $(LibraryPath);$(DXSDK_DIR)Lib\x86

    iv. Haga Clic En Aplicar.

    v. Elegir la Plataforma x64.
    vi. Establezca el directorio de la Biblioteca de la siguiente manera:

    Biblioteca de Directorios: $(LibraryPath);$(DXSDK_DIR)Lib\x64

    Donde “d3dx9.h”, “d3dx10.h”, o “d3dx11.h” están incluidos en su
    proyecto, asegúrese de incluir de manera explícita “d3d9.h”, “d3d10.h” y
    “dxgi.h”, o “d3d11.h” y “dxgi.h” primero para asegurarse de que usted va a recoger
    la versión más reciente.

    Puede desactivar la advertencia de C4005 si es necesario; sin embargo, esta advertencia
    indica que usted está utilizando la versión anterior de estos encabezados.

    Quitar todas las referencias a DXGIType.h en su proyecto. Este encabezado
    no existe en el SDK de Windows y la versión del SDK de DirectX
    los conflictos con el nuevo winerror.h.

    Todos D3DX Dll se instalan en el equipo de desarrollo por el
    DirectX SDK de instalación. Garantizar que el necesario D3DX dependencias
    se redistribuyen con cualquier muestra o con su aplicación si es que
    se trasladó a otra máquina.

    Ser conscientes de que las tecnologías de reemplazo para los usos actuales de D3DX11
    incluyen DirectXTex y DirectXTK. D3DXMath es reemplazado por DirectXMath.

    FFS de Microsoft, por favor, no cambiar la API de mediados de versión como esta!!!!!

    De acuerdo, especialmente cuando todos los libros actualmente en DirectX11 hacen un uso extensivo de d3dx11.h, la locura!

    OriginalEl autor fishfood

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *