프로그램 - windows 7 dcomp dll




승리 7, 64 비트, dll 문제 (9)

Windows 10으로 업그레이드하면서 새로운 Windows 7 OEM 설치를 시도한 후에이 문제가 발생했습니다.

마이크로 소프트 포럼 등을 검색 한 결과 나에게 도움이되는 다음 해결책을 찾았습니다.

C:\Windows\System32\wimgapi.dll C:\Windows10Upgrade\wimgapi.dll 을 대체하십시오

실행 파일에 문제가 있습니다. 나는이 Win-7 64-bit 개발 상자에서이 MS 응용 프로그램 (Visual Studio 2008 + 2010, TFS, SDK, MS Office)을 모두 실행하는 C ++ 32 비트 실행 파일을 실행하고 있습니다. .

이제 나는 똑같은 프로그램의 클라이언트 설치를 얻었고 깨끗한 Win-7 설치로 테스트 해 줄 것을 요청 받았다. 따라서 나는 Win-7 64-bit VM Ware를 얻었고 그것을 Win-7 SP 1 (내 개발자 박스가 튜닝하는 것과 동일한 버전)로 업데이트했다. 그러나 내 개발자 상자에있는 모든 프로그램은 VW Ware (30 일 평가판) 상자에서 작동하지 않습니다.

x86 종속성 워커는 다음 DLL이 없다고 알려줍니다.

  • API-MS-WIN-CORE-COM-L1-1-0.DLL
  • API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
  • API-MS-WIN-CORE-WINRT-L1-1-0.DLL
  • API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
  • API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
  • API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
  • DCOMP.DLL
  • GPSVC.DLL
  • IESHIMS.DLL

나는 그 API-MS-WIN -... dll을 찾아 봤는데 실제로 Win-7 (Win-8 및 Win 2012 서버에 속한다고 주장하는 일부 사이트)의 일부가되어야한다는 것을 알게되었습니다.

나는 이미 발견 된 제안 수정을 시도했다 :

  • 'sfc / scannow'실행 중
  • Visual Studio 2008 SP1 런타임 실행 파일 설치

그러나 그것은 아무것도 해결하지 못했습니다. :-(

사이드 노트 : 내 개발 상자도 그들 중 하나가 필요하지 않습니다. 예를 들어 VM웨어에 설치하는 동안 내 상자에있는 user32.dll이 그 중 하나에 연결되지 않습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까? MS 페이지에서 적절한 다운로드 / 수정을 찾으려고했으나 실패했습니다.

감사합니다, 토마스

내 문제를 해결 한 후에 내가 발견 한 것을보고하기를 원했고 질문이 닫혀서 답변으로 게시 할 수 없습니다.

사실 종속성 워커 도구에 의해 누락 된 모든 DLL은

* API-MS-WIN-CORE-...  

유형 DLL은 실제 문제의 일부가 아니 었습니다.

제 경우에는 3 OCX 파일의 등록이 누락되었습니다. 그리고 그 후에 모든 것이 잘되었지만, 의존성 워커 도구는 여전히 프로그램이 이제는 정상적으로 작동 할 때조차도 모든 매우 동일한 DLL을 나열했습니다.

그것의 요지 : 다른 누군가가 말했듯이,이 도구는 현재까지 약간 날짜가되어 있으며 최신 운영 체제에서는 항상 올바르게 작동하지는 않습니다. 따라서 눈을 뜨고 'API-MS-WIN-CORE-COM-L1-1-0.DLL'을 놓치지 않고 오해하지 마세요. 문제는 아마도 다른 곳에서도있을 것입니다.


나 역시 MSCVC 2012에서 C ++ Qt5 및 W7 64 비트를 사용하여 동일한 문제를 해결했습니다.

처음에는 MSVC / windows dll 문제라고 생각했지만 BorisP가 말한 것처럼 문제는 프로젝트 종속성에있었습니다. 핵심은 " Qt5에서 프로젝트 의존성을 아는 법 "입니다.

내가 그것을 알 수있는 분명한 방법을 찾지 못했기 때문에 (Dependency Wolker가 많이 도움이되지 않았다 ...), 나는 5 분을 넘지 않고 Dlls 의존성을 가진 많은 두통을 피하는 다음 "역 절차"를 따랐다. :

  1. 프로젝트를 컴파일하고 빈 폴더에 실행 파일을 가져옵니다. myproject.exe
  2. 그것을 실행하려고하면, 그것은 오류 (누락 된 dlls ...)를 검색합니다.
  3. 이제는 Qt의 모든 dll 을이 폴더로 복사하십시오 (제 경우에는 C : \ Qt \ Qt5.1.1 \ 5.1.1 \ msvc2012_64_opengl \ bin에 있음).
  4. 다시 실행 해보십시오, 아마 잘 동작 할 것입니다.
  5. 점진적으로 삭제를 시작하고 실행 파일이 여전히 작동 할 때마다 최소 필요한 DLL을 남기려 시도하십시오.

같은 폴더에 모든 DLL을 가지고있을 때 어떤 DLL이 유효하지 않은지 (XML, Webkit 등 ...) 찾아내는 것이 더 쉽습니다. 따라서이 방법은 5 분 이상 걸리지 않습니다.


나는 또한이 문제에 부딪 쳤지 만 여기에 공통적 인 스레드 인 것처럼 보이는 해결책은 웹상의 다른 곳에서 보았을 때 "재배포 가능 패키지를 다시 설치하는 것"입니다. 그러나, 저를 위해 작동하지 않는 경우, 우리의 제품 (재배포 가능 패키지를 설치하는)에 대한 설치 프로그램을 실행할 때 문제가 발생하여 반짝이는 새로운 VS 2015 빌드를 테스트합니다.

나열된 dll이 Visual Studio 설치 경로 (예 : C : \ Program Files (Microsoft) Visual Studio 14.0 \ VC \ redist)에 있지 않아 설치에 추가되지 않았기 때문에 문제가 발생했습니다. 이러한 api-ms-win- * dll은 Visual Studio 2015 설치 (예 : C : \ Program Files (x86) \ Windows Kits \ 10 \ Redist)의 일부로 Windows 10 SDK 설치 경로에 설치됩니다. Windows 10에 설치하면 문제가 없지만 Windows 7에 설치하면 이러한 dll을 제품 설치에 추가해야합니다. 자세한 내용은 https://support.microsoft.com/en-us/kb/2999226 에서 VS 2015로 인한 이러한 종속성 추가에 대해 설명하고 다양한 Windows 플랫폼 용 다운로드를 제공합니다. 또한 CRT 라이브러리의 재 설계를 설명하는 https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/ 을 참조 https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/ . 특히 유니버셜 CRT를 사용하는 소프트웨어 배포 섹션 아래 항목 6이 중요합니다 .

2015 년 9 월 11 일에 업데이트 됨 : Universal CRT의 응용 프로그램 로컬 배포가 지원됩니다. App-Local 배포 용 바이너리를 얻으려면 Windows 10 용 Windows SDK (Software Development Kit)를 설치하십시오. 바이너리는 C : \ Program Files (x86) \ Windows Kits \ 10 \ Redist \ ucrt에 설치됩니다. 앱과 함께 모든 DLL을 복사해야합니다 (필요한 DLL 집합이 Windows의 버전에 따라 다르므로 지원되는 모든 Windows 버전에서 프로그램을 실행하려면 모든 DLL을 포함해야합니다.) ).


나는 똑같은 문제가 있었다. 웹에서 시간을 보내고 검색 한 결과, 나에게 해결책을 찾았습니다. combose.dll (C : \ windows \ system32) 파일을 realese 폴더에 함께 넣었습니다.


설치 새로 설치 한 Windows 7에 설치된 MSSQL Management Studio 2014는 2 일간의 우스운 전투 후 클라이언트에서이 문제를 해결했습니다.


앞에서 언급했듯이 DCOMP는 VC ++ 재배포 가능 파일 (OpenMP 런타임 구현)의 일부이며 유일한 실종 구성 요소입니다. 나머지는 거짓 보고서입니다.

특히 API-MS-WIN-XXXX.DLL은 API 세트입니다 . 본질적 으로 Windows 7 이후 점진적 으로 도입 된 호출 간접 참조의 추가 레벨입니다 . 종속성 워커 개발은 그보다 오래 전에 중단되었으며 API 세트를 제대로 처리 할 수 ​​없습니다.

그래서 걱정할 것이 없습니다. 너는 더 이상 아무것도 놓치지 않았다.

누락 된 정말 필요한 DLL을 찾는 더 나은 대안은 ProcessMonitor를 실행하고 모든 시스템 경로에서 특정 DLL에 대해 실패한 프로브 시퀀스를 검색하여 실패에서 뒤로 단계별로 이동하는 것입니다.


이 기여는 실제로 초기 질문에는 답하지 않지만 API-MS-WIN-CORE 라이브러리를 찾을 수없는 문제를 다루는 사람들이 꽤 있다고 추정하는이 스레드의 적중률을 고려합니다.

내 응용 프로그램이 Visual Studio를 업데이트하여 API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL을 찾을 수 없다는 오류 메시지로 시작하는 것을 거부 한 문제를 해결할 수있었습니다.

내 빌드 환경 (Win7 Pro SP1, Visual Studio Ultimate 2012)이 완전히 엉망이라고 생각하지 않아 대부분의 프로젝트에서 제대로 작동했습니다. 그러나 매우 특정한 상황에서 오류 메시지가 나타납니다 (아래 참조).

Visual Studio 11 을 초기 CD-Version (버전 번호를 찾지 못함)에서 11.0.61030.00 Update 4 버전으로 업데이트 한 후에도 깨진 프로젝트가 다시 실행되었습니다.

나는 이것이 누군가를 도왔 으면 좋겠다!


이 문제가 해결되었습니다.
VS 2010 재배포 가능 패키지를 제거한 다음 Microsoft Windows 7 SDK를 이미 설치 한 경우


현재 사용중인 메모리 양을 확인하는 것도 좋습니다. 이 DLL을 찾을 수 없다는 사실은 Visual Studio에서 프로그램을 실행 (실행 또는 디버그) 할 때 나타나는 첫 번째 증상 이었음을 알 수 있습니다. 30 분 넘게 머리를 긁고, 웹을 검색하고, procmon과 작업 관리자를 실행하며, 시간이 시작된 이래 완전히 다른 프로그램이 실행되면 "메모리가 부족합니다. 일부 프로그램을 중지하십시오. 이러한. 파이어 폭스, 썬더 버드, procmon을 죽이는 것은, 모든 것이 다시 작용했습니다.







dll