我在Windows 7的VS2012中使用directx 11(Windows SDK 8)
我收到此错误
1 IntelliSense: more than one instance of overloaded function "XMMatrixTranspose" matches the argument list:
function "DirectX::XMMatrixTranspose(DirectX::CXMMATRIX M)"
function "XMMatrixTranspose(DirectX::CXMMATRIX M)"
argument types are: (const DirectX::XMMATRIX) c:\Program Files (x86)\Windows Kits\8.0\Include\um\DirectXMathMatrix.inl
代码中没有什么特别之处我只包含#include <DirectXMath.h>
任何时候都使用XMMatrix方法之一我得到这个
有什么想法吗?
THX
答案 0 :(得分:1)
这是因为Windows 7包含部分Windows 8 DirectX 11.1文件。例如,许多头文件将被包含两次,这将使Visual Studio发出一百万个关于它的警告。但是,这就是我的系统中的全部内容。为什么在Windows 7上使用Windows 8 SDK?只是出于好奇......
我建议在Windows 7上使用Windows 7 SDK,在Windows 8上使用Windows 8 SDK。
答案 1 :(得分:0)
我正在使用Windows 7 64位上的Windows 10 SDK,以使用新的代码模型开发DirectX 11应用程序。我和OP有相同的问题。
对我来说,解决方案是在调用它们时完全指定DirectXMath.h库中的任何方法(例如DirectX :: XMMatrixTranspose)。
示例通话:
m_viewMatrix = DirectX::XMMatrixLookAtLH(position, lookAt, up);