vs2012 DirectXMath重载函数的多个实例

vs2012 DirectXMath more than one instance of overloaded function

本文关键字:实例 函数 DirectXMath 重载 vs2012      更新时间:2023-10-16

我在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 Kits8.0IncludeumDirectXMathMatrix.inl  

代码中没有什么特别的,只是包含了#include <DirectXMath.h>任何时候使用XMMatrix方法我都会得到这个

任何想法?

Thx

这是因为Windows 7包含了Windows 8 DirectX 11.1文件的一部分。例如,许多头文件将被包含两次,这将使Visual Studio发出无数次警告。然而,这就是它们在我体内的全部。为什么在Windows 7上使用Windows 8 SDK ?只是出于好奇…

我建议在Windows 7上使用Windows 7 SDK,在Windows 8上使用Windows 8 SDK。

我在Windows 7 64位上使用Windows 10 SDK开发具有新代码模型的DirectX 11应用程序。我遇到了和op一样的问题。

我的解决方案是在调用它们时完全指定DirectXMath.h库中的任何方法(例如DirectX::XMMatrixTranspose)。

示例调用:

m_viewMatrix = DirectX::XMMatrixLookAtLH(position, lookAt, up);