얼마 전에 게임 엔진을 새 버전으로 교체하는 작업을 했습니다. 그런데, D3DXAssembleShader 함수가 HRESULT 0x8007007e 오류를 되돌리면서 실행되지 않는 것이었습니다. 디버거 출력 창에는 '지정된 모듈을 찾을 수 없습니다.'라고만 나오니까, 어떻게 해야 하는지 알 수 없었습니다. D3DXAssembleShader 함수 인자를 설정하면 추가적인 메시지를 얻을 수 있다고 돼 있지만, 라이브러리의 소스 코드를 수정하기는 어려운 상황이었습니다.

지푸라기라도 찾자는 마음으로 구글을 열심히 검색하다가, 어떤 파일을 접근하다가 실패하는지 찾으려면 Process Explorer를 활용하면 된다는 글을 우연히 발견했습니다. 그래서 그 프로그램을 띄워 놓고, 에러 날 때의 파일 접근을 조사해 보았습니다. 그랬더니 d3dcompiler_42.dll이라는 파일을 찾다가 실패하는 것임을 알았습니다. 그래서 DirectX 2009년 8월 버전을 설치하니까, 그 DLL에 접근이 잘 되네요.

아... 역시 디버깅은 어렵습니다.
2009/11/05 02:45 2009/11/05 02:45

트랙백 주소 :: http://www.easyisright.net/trackback/613

댓글을 달아 주세요

  1. 김재호 2010/07/28 19:22  댓글주소  수정/삭제  댓글쓰기

    프로세스 모니터로 해야하지 않나요?