제 목 dx2d part1 10강 질문입니다.
작성자 모르겠다 등록날짜 2022-04-01 01:55:20 / 조회수 : 182
강좌명 [패키지] 다이렉트X 2D, 3D 통합 패키지
  • 안녕하세요.  좋은 강의 감사드립니다!

     

    코드 보던 중에 이게 가능한가? 의구심이 들었는데, 실제로 컴파일 역시 실패 하길래 여쭤봅니다!

     " D3DXMatrixLookAtLH(&view, &D3DXVECTOR3(0, 0, 0), &D3DXVECTOR3(0, 0, 1), &D3DXVECTOR3(0, 1, 0)); "

    여기서 &D3DXVECTOR(0, 0, 0)  이런식으로 오른값의 주소값을 바로 전달 하고 있습니다.

    이 경우에 D3DXVECTOR(0,0,0)을 바로 매개변수로 넘겨 주게 되면 오른값(또는 임시값)이기 이 값의 포인터(&)연산을 할수 없는 것으로 알고 있습니다.

            D3DXVECTOR3 eye = D3DXVECTOR3(0, 0, 0);
            D3DXVECTOR3 dir = D3DXVECTOR3(0, 0, 1);
            D3DXVECTOR3 up    = D3DXVECTOR3(0, 1, 0);
            D3DXMatrixLookAtLH(&view, &eye, &dir, &up);

    저는 이와 같이 수정해서 컴파일은 성공 했지만,,

     

    선생님 환경에서는 어떻게 저 상태로 컴파일 된건지 궁금합니다.

     

     

  • 작성자 : 게임클래스 / 등록날짜 : 2022-04-05 17:24:45
  • 안녕하세요 게임클래스 입니다.

     

    담당 교수님 답변을 확인하느라 답변이 늦어진점 대단히 죄송합니다.

    선생님께서는 학생분의 에러코드를 보면 더 확실하게 알 수 있다고 

    에러 메시지를 알 수 있으면 알아달라고 요청하셨습니다.

     

    임시값도 경우에 따라서 포인터 연산이 가능한 경우가 있습니다.

    위에 학생분이 작성해 주신것 처럼, 지역변수로 받을 수 참조할때.

    이미 다른곳에 선언이 되어 있으면서 위처럼 사용하는 경우,

    오른값도 포인터로 사용이 가능합니다.

    사실 학생분이 작성한 것 처럼 지역변수로 선언해서 사용할때와 오른값으로 사용할때는

    메모리가 해제되는 시점이 변경이 다르기 때문에 학생분이 작성한 것 처럼 진행하는것이 더 좋을때도 있습니다.

     

    에러 메시지에 대해서 확인이 가능하시면 스크린샷과 함께 질문을 주시면 감사하겠습니다.

    감사합니다.