Я смотрел учебники в 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 :
Have you considered using XMFLOAT4X4 to store the matrix, and only using XMMATRIX?
. Но я думаю, что уже использую XMMATRIX.
MyClass.h:
private:
XMMATRIX g_World1;
MyClass.cpp:
void init(){
g_World1 = XMMatrixIdentity();
}
Я не думаю, что мне следует менять XMMATRIX g _World1; на XMFLOAT4X4 g _World1, потому что он выдает такие ошибки, как:
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'XMMATRIX' (or there is no acceptable conversion)