我正在查看 DirectX SDK 中的教程。教程 5 工作正常,但是在我将代码复制并分离到我自己的类之后,我在启动我的应用程序时遇到了奇怪的错误。
该行是:
g_World1 = XMMatrixIdentity();
因此,我在 xnamathmatrix.int operator= 中出现错误,如下所示:
XMFINLINE _XMMATRIX& _XMMATRIX::operator=
(
CONST _XMMATRIX& M
)
{
r[0] = M.r[0];
r[1] = M.r[1];
r[2] = M.r[2];
r[3] = M.r[3];
return *this;
}
错误信息是:
Access violation reading location 0xffffffff
我在某处读到它可能是由连接到 XMFLOAT4X4 / XMMATRIX 的东西引起的:
您是否考虑过使用 XMFLOAT4X4 来存储矩阵,并且只使用 XMMATRIX?
但我想我已经在使用 XMMATRIX。
MyClass.h:
private:
XMMATRIX g_World1;
我的类.cpp:
void init(){
g_World1 = XMMatrixIdentity();
}
我不认为我应该改变 XMMATRIX g_World1; 到 XMFLOAT4X4 g_World1,因为它会产生如下错误:
错误 C2679:二进制“=”:未找到采用“XMMATRIX”类型右侧操作数的运算符(或没有可接受的转换)