본문 바로가기

어떻게 할까/소프트웨어

LoadLibrary failed with error 1114: DLL 초기화 루틴을 실행할 수 없습니다 - 해결 방법

 윈도우10 의 업데이트에서 1903 최신판이 올라 왔다 갤래 판올림을 해 보았습니다.



 그런데 문제가 생겼습니다. 바로 1114 오류,

LoadLibrary failed with error 1114: DLL 초기화 루틴을 실행할 수 없습니다.



 이 문제가 발생 한 것은 구형 노트북에 2개의 서로 다른 그래픽 드라이버의 새로운 버젼을 올리기 위해 설치를 실행 한 다음에 발생 했다는 것인데, 이 문제에 대해 조금 찾아 보니 그래픽 드라이버의 성능을 최고로 올려야 한다고 합니다. 살다가 LoadLibrary API 가 실패하는걸 그래픽 드라이버 성능에 따라서 안된다는 정책은 대체 어디서 나온건지 궁금 합니다. 윈도우10은 업데이트 할 때 마다 자신들이 만들어 놓은 정책을 스스로 파괴 하는군요. ( LoadLibrary 는 Windows NT kernel 에 포함된 기본 API 입니다 )


 해결 방법은 전환가능한 그래픽 성능을 최대로 올려야 특정 프로그램들이 사용하는 Kernel API 를 사용할 수 있는 듯 합니다. 대체 이런 정책은 제대로 설계되어 만들어 져 있는것인지 궁금 하긴 하나, Windows 10 부터는 MS 의 알수없는 이상한 정책들을 간단한 프로그램을 만들면서도 이해 할 수 없는 것들이 많습니다. ( 예를 들어 설정에서 알림을 끄면 프로그램이 이를 알 수 있는 API 를 제공하지 않고, Shell_NotifyIcon() API 를 쓰면 이를 사용한 프로그램의 소리를 낼 수 있는 기능이 모두 정지 되는? )


 먼저 윈도우의 설정에 들어 가서 상단에 있는 검색 창에 "전원" 을 입력 합니다. 이때 하단에 "전원 및 절전 설정" 이 보이는데, 이를 바로 선택 해 줍니다. 그런 다음 관련설정 항목의 "추가 전원 설정" 을 선택 하여 새로운 창이 뜨도록 합니다.




 새로운 창이 뜨면 모양이 다르네, 아직도 Windows 10 에서 이 부분을 모두 새로운 UI 로 바꾸지 못한 부분이라 하겠습니다만, 이럴거면 양자 택일 하던가 하면 좋겠습니다만, 아마 Windows 2000 떄 부터 유지되어 온 기본 설정은 바뀌지 못할 듯 합니다. 새로 뜨는 "전원 옵션" 창에서 어떤 것이 설정 되어 있던간에 아래 이미지 처럼 "설정 변경" 을 선택 해 줍니다.



 그런 다음 "전원 관리 옵션 설정 편집" 창에서 하단에 있는 "고급 전원 관리 옵션 설정 변경" 을 또 선택 해 줍니다. 예전엔 이런 UI 가 당연 했는데, 요즘같은 세상에 무척이나 직관성이 떨어지는 UX 가 아닌가, 란 생각이 많이 드는 부분 입니다 ..



 위의 "고급 전원 관리 옵션 설정 변경" 을 클릭 하면 또 작은 창이 또! 뜹니다. 아마 CPU 전원 옵션을 이전의 제 "CPU 발열 제한"을 보신분들이라면 익숙한 그 창 이 맞습니다. 이제 여기서 스크롤을 내려 보면 "전환 가능한 동적 그래픽" 이란 부분이 보일 것 입니다. 이게 없으신 분들은 현재 문제에 해당하는 분들이 아닙니다. 이 1114 오류는 전환 가능한 그래픽을 가진 구형 ( 신형 노트북에서 이런 구조를 쓰지는 않는 걸로 압니다, 또 다른 장치가 더 붙어 있는 것으로 인식 되는 것으로, 현재 문제와 다름 ) 노트북에서 격는 문제로서 "전원 사용" 옵션이 "성능 최적화" 로 되어 있는 것을 "최대 성능" 으로 변경 해야 합니다. MS 에서 의미하는 성능 최적화는 ... 기능을 죽여서 배터리 성능을 올리는 건가 본데, 뭔가 많이 잘못된거 같습니다.




 이걸 설정 하고 "확인" 을 눌러 이때 까지 열었던 창들을 모두 닫고 나서, 이전에 문제가 발생한 프로그램을 다시 실행 해 봅니다.



 잘 됩니다.

 Windows 10 을 올리고 나서 발생하는 여러 드라이버 성능 문제 등을 단지 제조사측에 떠넘기기만 하는 모습을 보이는 M$ 의 정책을 보면 매우 이해가 어려운 부분 입니다. 특히 개발을 하는 입장에서는 다른 POSIX 에서는 더욱 더 이해 못하겠는 오류를 대처 할 수 있는 방안도 만들어 놓지 않고 이를 무성의한 오류코드 하나로 사용자에게 보여 주는 모습은 OS 를 비싼 돈 주고 팔아 먹고 있는 회사로서 매우 무책임 하다 느껴 집니다.