DLL
'''D'''ynamic '''L'''ink '''L'''ibrary.
1. 개요
라이브러리란 소프트웨어 개발에서 자주 쓰고 기초적인 함수들을 중복 개발하는 것을 피하기 위해서 표준화된 함수 및 데이터 타입을 만들어서 모아 놓은 것이다. 이런 라이브러리는 언제 메인 프로그램에 연결하느냐에 따라서 Static Link와 Dynamic Link로 나뉘며, DLL은 이 중 후자를 뜻한다.
스태틱 링크는 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일부분이 된다. 그러나 다이나믹 링크는 각 실행 파일에서 해당 라이브러리의 기능을 사용 시에만, 라이브러리 파일을 참조하여(혹은 다운로드받아) 기능을 호출한다.
2. 여담
개발자들은 좋아하지만[1][2] , 유저들은 겁나게 싫어한다.(...) 아무래도 로딩 시간이 있기 때문에 그런 듯. 일부 프로그램은 dll이 없어서 에러를 내뱉기도 한다 NT 6.x 이상의 환경에서 Direct X 9 라이브러리 문제로 에러를 띄운다).
3. dll 오류
관련문서 : 컴퓨터 고장 정보
dll 오류에 관해서 검색하면 해당 dll 파일을 따로 다운받으라는 글을 많이 볼 수 있는데 주로 dll 파일을 제공하는 사이트로 가라고 한다. 하지만 그런 사이트에 있는 파일들의 경우 최신 버전이 아닌 구 버전으로 해결이 안될 수 있기 때문에 dll 파일을 따로 구하기보다는 해당 dll 파일이 포함된 드라이버를 재설치하는게 낫다.
- ntdll.dll 의 appcrash
- 여기처럼 최근에 수정된 프로그램을 삭제해보거나 레지스트리의 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects 하단의 경로들을 삭제해준다.
2. 윈도 7 환경에서 IE 11과 플래시가 동시에 설치되어 있을 경우 인터넷 실행시 플래시가 포함된 페이지에서 오류를 일으킨다. 이 경우 IE 11을 롤백하면 된다.
- msvcp140.dll이 없음
- X3DAudio1_7.dll이 없음
다이렉트X를 설치하면 된다.
- d3dx9_\#(숫자).dll이 없음
인터넷에서 d3dx9_(아무 숫자).dll 검색해서 다운받고 이름을 해당 숫자로 바꿔 프로그램을 실행시킬 폴더나 %SystemRoot%(C:\Windows\System32\)에 넣으면 된다. 이것도 마트료시카 마냥 여러 개가 뜨기 시작하면 그냥 다이렉트X를 재설치하자. (이 경우에는 다이렉트X 9)