스샷 http://blogfile.paran.com/BLOG_309183/200601/1138554951_2.JPG
소스 http://blogfile.paran.com/BLOG_309183/200601/1138555037_3d.rar
d3d공부중임니다.
예제파일을 분석하다 디버그 모드에서(F5) 이상하게 워치창에 값이 안뜨고
<정의되지 않은 값>이라고만 나오더군요 정의해서 값까지 따로 넣어준 변수에요
D3DXLoadMeshFromX(
"bigship1.x",
D3DXMESH_MANAGED,
Device,
&adjBuffer,
&mtrlBuffer,
0,
&numMtrls,
&Mesh);
파일을 읽어들인 다음
D3DXMATERIAL* mtrls = (D3DXMATERIAL*)mtrlBuffer->GetBufferPointer();
mtrls에 값을 넣었습니다. mtrlBuffer은 void포인터를 반환함니다.
그런데 여기서 mtrls값을 볼수가 없는검니다.(mtrls[0]도 마찬가지 스샷 참고)
D3DMATERIAL9 ii = mtrls[0].MatD3D;
하면 ii는 워치창에서 값을 볼수 있고 mtrls에 값이 정상적으로 들어가 있다는것도 알수 있었습니다.
이리저리 해봐도 통 안되는군요-_-; 설날에 공부를 해서 새해 저주를 받았는지;
아시는분 부디 가르침을 내려주시길;;;
간단하게 로그를 남겨서 확인하세요.
실시간으로 확인 하고 싶으시다면 디버그 창에 남기시고, 그 위에서 브레이크를 잡고 내려가면서 디버그창을 참고 하시고 여러 데이터를 비교하는거라면 로그로 뽑아서 비교해보시는게 좋다고 봅니다.
닷넷 03에서 OutputDebugString(문자열); 함수가 동작하는지는 잘 모르겠네요.
비졀6.0에 워치창에서 대표적으로 표시못하는 값으로 스태틱이 있어요. 정적으로 선언한건 죄다 안되고 인라인으로 된것도 죄다 안되죠
디파인된 것들도 역시 안되고..^^a 이런 부분은 컴파일러의 한계라고 봐야 될듯..아 그외 STL 값도 보기엔 쫌 힘들더군요. 나오긴 나오는데..-_-;;