vs2012 DirectXMath多个重载函数实例

时间:2013-03-04 19:01:15

标签: c++ directx directx-11

我在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

2 个答案:

答案 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);