저는 XMVECTOR를 테두리 상자의 클래스 멤버로 사용하려고했습니다. 많은 계산을했기 때문에 XMFLOAT3을 프레임 당 한 번만 사용했기 때문에 테두리 상자에 그 중심을 제공하는 메서드가 있습니다.DirectXMath에서 XMVECTOR를 클래스 멤버로 사용하면 릴리즈 모드에서만 충돌이 발생합니까?
Box& Box::operator=(const Box& box)
{
_center = box._center;
_extents = box._extents;
return *this;
}
때마다 :; XMFLOAT3, 그렇지 않으면 그것은 XMVECTOR에 남아 클래스가 __declspec와 delcared되어 그것이 내가 뭔가를 즉시 설정 충돌하는() (16 정렬) 및 릴리스 모드에서 디버그 mode.However에서 작동 나는 :
Box A;
Box B;
A = B;
0xC0000005 : 액세스 위반 읽기 위치 0x00000000이 나에게 충돌이 발생합니다. 이 생성자입니다
Box* A = new Box();
: 또한 내가 포인터로 만들 때 충돌이 다시
Box::Box()
{
center = XMVectorZero();
extents = XMVectorSplatOne();
}
, 이것은 디버그 모드에서 잘 작동,하지만 릴리스에서 모드를 해제 할 수 crashes.What 잘못된 코드를 생성하는 변경해야합니까? 상자를 16 바이트로 맞춤 이외의 다른 작업을 수행해야합니까?
주를 오버로드 할 것입니다. [DirectXMath] (http://blogs.msdn.com/b/chuckw/archive/2012/03/27/introducing-directxmath.aspx)에는 이미''DirectXCollision.h'' 헤더에''BoundingBox''가 포함되어 있습니다. –