이 글을 3줄로 요약하면
· PC가 고장 난 게 아니라, DirectX 9 시절의 D3DX 구성 요소가 윈도우에 기본 포함되지 않아 생기는 오류입니다.
· 원인은 미설치·게임 폴더 런타임 미실행·백신 차단·시스템 파일 손상 네 갈래입니다.
· 파일이 실제로 없는지 있는데 못 읽는지부터 확인하면 네 가지를 다 해볼 필요가 없습니다.
d3dx9_43.dll은 정확히 무슨 파일인가
"DirectX가 없다"가 아니라 "DirectX 9의 보조 라이브러리가 없다"입니다. 이 차이가 해결법을 가릅니다.
파일 이름을 뜯어보면 성격이 그대로 보입니다. d3d는 Direct3D, 9는 DirectX 9, X는 D3DX, 43은 세부 빌드 번호입니다. 즉 이 파일은 DirectX 본체가 아니라, DirectX 9 시절 개발자들이 쓰던 보조 도구 라이브러리입니다.
마이크로소프트 문서는 D3DX를 "Direct3D 위에 추가 그래픽 기능을 제공하도록 설계된 도구 라이브러리"로 설명하고, 현재는 사용 중단(deprecated) 상태라고 명시합니다. 문서는 또 이 D3DX DLL이 SDK의 재배포 패키지에 포함되어 배포된다고 적고 있습니다.
핵심은 여기입니다. 윈도우에 기본으로 들어 있는 게 아니라, 게임이나 프로그램이 함께 배포해야 하는 파일입니다. 윈도우 10·11에 최신 DirectX 12가 들어 있어도 이 파일은 별도로 설치해야 합니다.
그래서 이 오류는 2005~2015년 사이에 나온 게임과 프로그램에서 유독 자주 보입니다. 최신 게임은 DirectX 11·12를 쓰기 때문에 이 파일을 아예 요구하지 않습니다.
파일이 있어야 할 자리는 두 곳입니다. 64비트 프로그램은 C:\Windows\System32를, 32비트 프로그램은 C:\Windows\SysWOW64를 봅니다. 옛날 게임은 대부분 32비트라 두 번째 경로가 더 중요합니다.
증상으로 원인 좁히기
같은 문구라도 언제 뜨는지에 따라 원인이 다릅니다.
오류 창 문구는 "이 프로그램을 실행할 수 없습니다. 컴퓨터에 d3dx9_43.dll이 없습니다", "코드 실행을 계속할 수 없습니다" 등 여러 형태입니다. 중요한 건 문구가 아니라 어느 상황에서 뜨는가입니다.
| 증상 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 옛날 게임을 처음 설치하고 실행하자마자 뜬다 | D3DX 구성 요소가 아예 없음 | 원인 A |
| 압축을 풀어 쓰는 게임이거나 설치 중 오류가 났었다 | 게임 폴더의 런타임 설치가 건너뛰어짐 | 원인 B |
| 잘 되던 게임이 어느 날부터 갑자기 이 오류를 낸다 | 백신이 파일을 격리했거나 삭제함 | 원인 C |
| dll 다운로드 사이트에서 파일을 받아 넣은 적이 있다 | 버전이 맞지 않는 비공식 파일 | 원인 C |
| 런타임을 설치했는데도 똑같은 오류가 뜬다 | 시스템 파일 손상으로 설치가 반영되지 않음 | 원인 D |
| 여러 프로그램에서 서로 다른 dll 이름으로 같은 오류가 뜬다 | 런타임 패키지 전반의 문제 | 7번 항목에서 먼저 확인 |
"원래 잘 되던 게임인가"가 갈림길입니다
한 번도 실행된 적 없는 게임이면 원인 A·B, 잘 되다가 갑자기 안 되는 거면 원인 C·D 쪽입니다. 이 한 가지만 구분해도 확인할 범위가 절반으로 줄어듭니다.
원인 AD3DX 구성 요소가 설치돼 있지 않다
가장 흔한 경우이고, 공식 설치 파일 하나로 끝납니다.
해결책은 마이크로소프트가 공식 배포하는 DirectX End-User Runtime을 설치하는 것입니다. 이 패키지 안에 d3dx9_43.dll을 포함한 D3DX9·D3DX10·D3DX11과 XAudio 2.7, XInput 1.3 같은 구형 구성 요소가 통째로 들어 있습니다.
많이들 걱정하는 부분을 먼저 정리하면, 이 패키지는 이미 설치된 DirectX 12를 지우거나 되돌리지 않습니다. 빠져 있는 구형 구성 요소만 추가로 얹는 방식입니다.
1공식 다운로드 센터에서 설치 파일을 받는다
마이크로소프트 다운로드 센터에서 "DirectX End-User Runtime"을 검색해 접속합니다. 검색 결과에 웹 설치 관리자와 재배포 패키지 두 가지가 나오는데, 인터넷이 연결돼 있으면 웹 설치 관리자 쪽이 간단합니다.
2설치 마법사를 끝까지 진행한다
받은 파일을 실행하면 사용권 계약 화면이 먼저 나옵니다. 동의를 선택하고 다음을 눌러 진행합니다. 중간에 다른 제품 설치를 권하는 체크박스가 있으면 해제해도 D3DX 설치에는 영향이 없습니다.
3재부팅한 뒤 실행한다
설치 직후 바로 실행하면 시스템이 새 DLL을 아직 인식하지 못해 같은 오류가 나는 경우가 있습니다. 재부팅 한 번을 건너뛰지 않는 편이 좋습니다.
dll 파일 한 개만 받아서 넣는 방법은 쓰지 마세요
검색하면 d3dx9_43.dll만 개별로 내려받는 사이트가 많이 나옵니다. 출처가 불분명한 파일에 악성코드가 섞이는 사례가 있고, 버전이 맞지 않으면 "올바른 Windows 이미지가 아닙니다" 같은 다른 오류로 바뀝니다. 공식 런타임은 필요한 파일 전부를 맞는 버전으로 한 번에 넣어 줍니다.
이 방법이 안 통하는 경우
설치가 성공했다고 나왔는데도 같은 오류가 뜬다면, 설치 자체가 반영되지 않았거나 설치된 파일이 곧바로 지워지고 있다는 뜻입니다. 원인 C에서 백신 격리 기록을 먼저 확인하세요.
원인 B게임 폴더의 런타임을 실행하지 않았다
게임이 필요한 런타임을 이미 들고 있는데 설치만 안 된 경우입니다.
상당수 게임은 자기 설치 폴더 안에 필요한 런타임 설치 파일을 함께 넣어 둡니다. 정상적으로 설치하면 마지막 단계에서 자동으로 실행되지만, 압축만 풀어 쓰거나 설치 중 오류가 났으면 이 단계가 통째로 건너뛰어집니다.
1게임 설치 폴더를 연다
스팀이라면 라이브러리에서 게임을 우클릭해 관리 → 로컬 파일 보기를 선택합니다. 스팀이 아니라면 바로가기를 우클릭해 파일 위치 열기로 들어갑니다.
2런타임 폴더를 찾는다
_CommonRedist, redist, Redistributables, DirectX 중 하나의 이름을 가진 폴더가 있는지 봅니다. 그 안에 DirectX 폴더가 또 있으면 들어갑니다.
3DXSETUP을 관리자 권한으로 실행한다
폴더 안의 DXSETUP 파일을 우클릭해 관리자 권한으로 실행합니다. 게임이 실제로 요구하는 버전이 정확히 들어가므로, 이 경로가 있다면 원인 A보다 확실합니다.
4스팀 게임이면 무결성 검사도 함께 돌린다
게임 속성의 설치된 파일 항목에서 게임 파일의 무결성 확인을 실행하면, 빠지거나 깨진 게임 파일까지 함께 복구됩니다.
이 방법이 안 통하는 경우
게임 폴더에 런타임 폴더 자체가 없는 경우도 흔합니다. 배포 방식에 따라 아예 포함하지 않기 때문입니다. 그럴 때는 원인 A의 공식 런타임으로 돌아가면 같은 파일이 설치됩니다.
원인 C백신이 차단했거나 비공식 파일을 넣었다
잘 되던 게임이 갑자기 이 오류를 낸다면 여기부터 보세요.
런타임을 아무리 설치해도 소용없는 경우가 있습니다. 설치는 됐는데 백신이 그 파일을 곧바로 격리하는 상황입니다. 옛날 게임의 실행 파일이나 함께 딸려 오는 런타임이 오탐되는 사례가 있습니다.
그리고 과거에 dll 다운로드 사이트에서 파일을 받아 넣었다면 그 파일부터 치워야 합니다. 버전이 맞지 않는 파일이 시스템 폴더에 있으면, 공식 런타임을 설치해도 그 파일이 먼저 잡히면서 오류가 계속됩니다.
1보호 기록에서 격리 여부를 확인한다
Windows 보안의 바이러스 및 위협 방지 → 보호 기록에서 최근 격리된 항목 목록을 봅니다. 게임 폴더 경로나 dll 이름이 보이면 원인이 확정됩니다.
2믿을 수 있는 게임이면 제외 경로로 등록한다
정식 구매한 게임의 설치 폴더라면 바이러스 및 위협 방지 설정 → 제외 항목에서 그 폴더를 등록합니다. 백신을 통째로 끄지 말고 해당 폴더만 예외로 두는 편이 안전합니다.
3예전에 수동으로 넣은 dll을 지운다
System32나 SysWOW64, 게임 폴더에 직접 복사해 넣은 d3dx9_43.dll이 있으면 지웁니다. 그다음 원인 A의 공식 런타임을 다시 설치해 정품 파일로 채웁니다.
이 방법이 안 통하는 경우
보호 기록에 아무것도 없고 수동으로 넣은 파일도 없다면 이 갈래가 아닙니다. 런타임 설치가 성공했는데도 파일이 자리에 없다면 원인 D로 넘어가세요.
원인 D시스템 파일 손상
설치는 되는데 반영이 안 되는 드문 경우입니다.
런타임 설치 프로그램이 파일을 쓰려면 윈도우 설치 관련 구성 요소가 정상이어야 합니다. 이쪽이 깨져 있으면 설치는 성공했다고 뜨는데 실제 파일은 자리에 없는 상태가 됩니다.
1시스템 파일 검사를 돌린다
시작 버튼을 우클릭해 터미널(관리자)을 열고 입력합니다. 검사에 10~20분 걸리므로 창을 닫지 않고 기다립니다.
2복구가 안 되면 저장소부터 고친다
sfc가 "복구할 수 없습니다"를 냈을 때만 필요합니다. 인터넷 연결 상태로 실행한 뒤 sfc를 한 번 더 돌려야 실제 파일이 교체됩니다.
3복구 후 런타임을 다시 설치한다
시스템 파일이 정상으로 돌아온 뒤에 원인 A의 런타임을 한 번 더 실행합니다. 이번에는 파일이 실제로 자리에 들어갑니다.
윈도우 업데이트를 밀린 채로 두면 여기서 막힐 수 있습니다
DISM은 온라인 복구에 윈도우 업데이트 경로를 씁니다. 업데이트가 오래 밀려 있거나 서비스가 꺼져 있으면 복구가 중간에 실패하므로, 설정에서 업데이트를 먼저 최신으로 맞춰 두는 편이 좋습니다.
이 방법이 안 통하는 경우
sfc가 "위반을 찾지 못했습니다"를 냈다면 시스템 파일은 정상입니다. 그런데도 오류가 남는다면 게임 쪽 문제일 가능성이 크므로, 게임을 완전히 삭제하고 남은 폴더까지 지운 뒤 재설치해 보세요.
어느 원인인지 정확히 찾아내는 법
네 가지를 다 해보는 대신, 파일이 실제로 있는지부터 눈으로 확인합니다.
이 오류에서 가장 빨리 갈래를 가르는 질문은 하나입니다. 파일이 진짜 없는가, 아니면 있는데 못 읽는가. 이건 폴더를 열어보면 3분 안에 판가름 납니다.
1두 시스템 폴더를 각각 확인한다
파일 탐색기 주소창에 각각 붙여넣고 검색창에 d3dx9_43.dll을 입력합니다. 두 곳 다 없으면 원인 A·B, 있는데도 오류가 나면 원인 C·D입니다.
2파일이 있다면 속성에서 출처를 본다
파일을 우클릭해 속성 → 자세히 탭을 열면 제품 이름과 파일 버전이 나옵니다. Microsoft DirectX for Windows가 아니거나 회사 정보가 비어 있으면 비공식 파일이므로 원인 C로 갑니다.
3DirectX 진단 도구로 전체 상태를 본다
Win + R로 실행하면 시스템·디스플레이 탭에서 DirectX 버전과 드라이버 상태를 볼 수 있고, 하단 메모 영역에 문제가 감지되면 그 내용이 표시됩니다.
dxdiag의 DirectX 버전이 12라고 해서 이 오류가 해결된 건 아닙니다
dxdiag가 보여주는 건 DirectX 본체 버전입니다. D3DX 구성 요소는 이 버전 표시와 무관하게 따로 설치되므로, 12로 나와도 d3dx9_43.dll은 없을 수 있습니다. 실제 유무는 1번 단계의 폴더 검색으로만 확인됩니다.
자주 묻는 질문
본문에서 다루지 않은 경계 상황들입니다.
Q.런타임을 설치했는데도 계속 같은 오류가 뜹니다.
A.재부팅을 하지 않았거나, 설치된 파일이 백신에 격리됐거나, 게임 파일 자체가 손상된 경우입니다. 7번 항목에서 파일이 실제로 자리에 있는지부터 확인하면 셋 중 어느 쪽인지 바로 갈립니다.
Q.dll 파일만 따로 받아서 넣어도 되나요?
A.권장하지 않습니다. 악성코드가 섞이는 사례가 있고, 버전이 맞지 않으면 다른 오류로 바뀝니다. 이미 넣은 파일이 있다면 원인 C의 3번 단계대로 지우고 공식 런타임으로 다시 채우는 편이 낫습니다.
Q.런타임을 설치하면 기존 DirectX 12가 지워지나요?
A.지워지지 않습니다. 이 패키지는 빠져 있는 구형 구성 요소만 추가로 설치하고 기존 DirectX는 그대로 둡니다.
Q.32비트와 64비트 중 어느 걸 받아야 하나요?
A.공식 런타임 설치 파일은 시스템에 맞는 구성 요소를 스스로 판단해 System32와 SysWOW64 양쪽에 넣습니다. 비트를 따로 고를 필요가 없습니다.
Q.윈도우 11에서도 같은 방법이 통하나요?
A.윈도우 10과 11 모두 동일합니다. 최신 윈도우도 D3DX 같은 구형 구성 요소는 기본 포함하지 않기 때문에 별도 설치가 필요합니다.
Q.d3dx9_43 말고 다른 번호의 파일이 없다고 나옵니다.
A.d3dx9_39, d3dx9_41, d3dx11_43 등 번호만 다른 형제 파일들입니다. 같은 D3DX 계열이라 공식 런타임 하나로 함께 설치되므로 해결 방법은 이 글과 동일합니다.
함께 보면 좋은 글
같은 판별 방식으로 정리한 DLL·런타임 글입니다.
d3dx11_43.dll 없음 오류 해결 같은 D3DX 계열의 DirectX 11 쪽 파일입니다 · 눌러서 확인하기 → VCRUNTIME140.dll·MSVCP140.dll 없음 오류 원인 4가지 DirectX가 아니라 Visual C++ 쪽 런타임이 빠졌을 때 나오는 오류입니다 · 눌러서 확인하기 → api-ms-win-crt-runtime-l1-1-0.dll이 없습니다 오류 여러 프로그램에서 서로 다른 dll 이름으로 오류가 뜬다면 함께 보세요 · 눌러서 확인하기 →참고 문서 · D3DX (Direct3D 9) (Microsoft Learn)






