(Yay, la mia prima risposta su StackOverflow)
Trovato un, speriamo bene, soluzione alternativa al problema: crea il tuo file di intestazione, che include Windows.h (D3D11 comprende che in ogni modo), non-definisce finestre macro e include D3D11.h. Includi questa intestazione invece di D3D11.h. Nota: Ovviamente questa priorità versioni D3D11 di definizione, su quelle di Windows.h
// D3D11-NoRedefs.h
// Includes D3D11.h without redefinitions from Windows!
#pragma once
#include <Windows.h>
//#pragma region Undefine Windows Macros
// Only undefine, if DXGIType.h has not been included yet
#ifndef __dxgitype_h__
#undef DXGI_STATUS_OCCLUDED
#undef DXGI_STATUS_CLIPPED
#undef DXGI_STATUS_NO_REDIRECTION
#undef DXGI_STATUS_NO_DESKTOP_ACCESS
#undef DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE
#undef DXGI_STATUS_MODE_CHANGED
#undef DXGI_STATUS_MODE_CHANGE_IN_PROGRESS
#undef DXGI_ERROR_INVALID_CALL
#undef DXGI_ERROR_NOT_FOUND
#undef DXGI_ERROR_MORE_DATA
#undef DXGI_ERROR_UNSUPPORTED
#undef DXGI_ERROR_DEVICE_REMOVED
#undef DXGI_ERROR_DEVICE_HUNG
#undef DXGI_ERROR_DEVICE_RESET
#undef DXGI_ERROR_WAS_STILL_DRAWING
#undef DXGI_ERROR_FRAME_STATISTICS_DISJOINT
#undef DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE
#undef DXGI_ERROR_DRIVER_INTERNAL_ERROR
#undef DXGI_ERROR_NONEXCLUSIVE
#undef DXGI_ERROR_NOT_CURRENTLY_AVAILABLE
#undef DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED
#undef DXGI_ERROR_REMOTE_OUTOFMEMORY
#undef D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
#undef D3D11_ERROR_FILE_NOT_FOUND
#undef D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS
#undef D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD
#undef D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
#undef D3D10_ERROR_FILE_NOT_FOUND
#endif
#pragma endregion
#include <D3D11.h>
prega fatemi sapere cosa ne pensate, e non trattenere sulla critica. Sono nuovo di questo e so che questa è una forza bruta e probabilmente rischiosa.
Si prega di condividere l'ordine di include. Inoltre, perché vuoi usare d3d10 e d3d11 nella stessa struttura di inclusione del file? – Ram
@Ram, d3d10 è incluso da qualche parte di d3d11. – chris
Ho provato a rimuovere tutto tranne d3d11.h, che a sua volta include dxgi.h e dxgitype.h –