파일 접근 실패 원인을 찾는 방법

예전에 어느 라이브러리의 D3DXAssembleShader 함수가 HRESULT 0x8007007e 오류를 되돌리면서 실행되지 않는 때가 있었습니다. 디버거 출력 창에는 ‘지정된 모듈을 찾을 수 없습니다.’라고만 나오니까, 어떻게 해야 하는지 알 수 없었습니다. D3DXAssembleShader 함수 인자를 설정하면 추가적인 메시지를 얻을 수 있다고 MSDN에 적혀 있지만, 라이브러리의 소스 코드를 수정하기는 어려운 상황이었습니다.

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

참고로, 파일 접근 실패 문제는 Process Monitor로도 해결이 가능할 것 같습니다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중