programing

Windows 7, 64비트, DLL 문제

magicmemo 2023. 4. 11. 21:55
반응형

Windows 7, 64비트, DLL 문제

실행 파일에 문제가 있습니다.이 C++ 32비트 실행 파일을 Windows 7 64비트 개발 박스에서 실행하고 있습니다.이 박스에는 Microsoft 애플리케이션(Visual Studio 2008 + 2010, TFS, SDK, Microsoft Office)도 모두 포함되어 있습니다.그리고 그것은 여전히 잘 돌아가고 있다.

이 시점에서, 같은 프로그램을 클라이언트로부터 인스톨 해, Windows 7 의 클린 인스톨로 테스트하도록 요구받았습니다.따라서 Windows 7 64비트 VMware를 1개 구입하여 Windows 7 SP 1로 업데이트했습니다(개발자가 튜닝하고 있는 버전과 동일).그러나 개발자 박스에는 문제가 없지만 VMware(30일 평가판) 박스에서는 프로그램이 작동하지 않습니다.

x86 Dependency Walker에서 다음 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
  • IESHIESHIMSDLL

API-MS-WIN-을 검색했는데...DLL 파일이 실제로 Windows 7에 속해 있어야 합니다(단, 가 Windows 8 및 Windows Server 2012에 속해 있다고 주장하는 사이트도 있습니다).

이미 찾은 권장 수정 프로그램을 사용해 보았습니다.다음은 예를 제시하겠습니다.

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

하지만 그것으로는 아무것도 해결되지 않았다. :- (

사이드 노트:제 개발 상자에도 그것들이 없고, 필요하지도 않은 것 같습니다.예를 들어 VMware 설치 시 링크되는 동안 박스 상의 user32.dll은 링크되지 않습니다.

이 문제를 어떻게 해결할지 생각나는 게 있나요?Microsoft 페이지에서 적절한 다운로드/수정 프로그램을 찾으려고 했지만 실패했습니다.


문제를 해결한 후 알게 된 내용을 보고하고 싶었지만 질문이 종료되어 답변으로 올릴 수 없습니다.

실제로 Dependency Walker 툴에 의해 누락된 것으로 보고된 모든 DLL 파일, 즉 DLL 파일

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

형식 DLL 파일은 실제 문제의 일부가 아닙니다.

내 경우 OCX 파일 3개가 등록되지 않아 모든 것이 정상이었지만, 프로그램이 정상적으로 실행되고 있을 때에도 Dependency Walker 툴은 여전히 이전과 동일한 DLL 파일을 모두 나열했습니다.

요점: 다른 곳에서 말한 것처럼 이 툴은 현재 약간 구식이며 새로운 OS에서 항상 정상적으로 동작하는 것은 아닙니다.따라서 'API-MS-WIN-CORE-COM-L1-1-0'을 놓쳐 오도되지 않도록 주의해 주십시오.DLL, ...문제는 완전히 다른 곳에 있을 수 있습니다.

이 문제는 Visual Studio "재전송 가능 패키지" 누락과 관련이 있습니다.의존관계 워크에 따라서는 어느 것이 누락되었는지 알 수 없지만 먼저 컴파일러 버전에 대응하는 것을 시험하여 정상적으로 동작하고 있는지 확인합니다.

Visual Studio 2015

Visual Studio 2013

Visual Studio 2010

Visual Studio 2008

이 문제는 Visual Studio 컴파일러를 사용하고 있지만 Visual Studio의 전체 환경을 사용하고 있지 않기 때문에 발생했습니다.


여기에 새로운 링크를 삽입할 수 있습니다.지원되는 최신 Visual C++ 다운로드.스타인 오스물, 2018년 11월 29일

방금 C++ Qt 5 및 MSCVC 2012를 탑재한 Windows 7 64비트에서 같은 문제를 해결했습니다.

처음에는 MSVC/Windows DLL 파일 문제인 줄 알았지만, BorisP가 말했듯이 프로젝트 의존성에 문제가 있었습니다.요점은 "5분기 프로젝트 의존관계 파악 방법"입니다.

(Dependency Walker는 별로 도움이 되지 않았기 때문에) DLL 파일의 의존성에 대한 많은 문제를 피하기 위해 5분밖에 걸리지 않는 다음 "역순서"를 따랐습니다.

  1. 프로젝트를 컴파일하고 실행 파일을 빈 폴더(my project)로 가져옵니다.실행
  2. 실행해 보십시오. 오류가 검색됩니다(DLL 파일이 누락됨...).
  3. 다음으로 Qt에서 모든 DLL 파일을 복사합니다(이 경우는 C:\Qt\Qt5.1.1\msvc2012_64_opengl\bin)을 클릭합니다.
  4. 다시 실행해 보세요. 아마 잘 될 거예요.
  5. 순차적으로 삭제를 시작하고 실행 파일이 계속 작동할 때마다 필요한 최소한의 DLL 파일을 남겨두려고 시도합니다.

모든 DLL 파일이 동일한 폴더에 있으면 유효하지 않은 파일(XML, WebKit 등)을 쉽게 찾을 수 있으며, 따라서 이 방법은 5분 이상 걸리지 않습니다.

방금 같은 문제를 해결했어요.

Dependency Walker는 이 경우 오해를 불러일으키고 있으며, 이로 인해 시간을 낭비하게 되었습니다.따라서 첫 번째 투고에서 "누락된" DLL 파일 목록은 도움이 되지 않으므로 무시해도 됩니다.

해결 방법은 프로젝트에서 호출하는 참조를 찾아 서버에 실제로 설치되어 있는지 확인하는 것입니다.

@Ben Brammer, 어떤 .ocx 파일이 누락되었는지는 중요하지 않습니다.Leo T Abraham의 프로젝트에서만 누락되었기 때문입니다.프로젝트에서 다른 DLL 파일을 호출할 수 있습니다.

내 경우 3개의 .ocx 파일이 아니라 MySQL 커넥터 DLL 파일이 누락되었습니다.용 MySQL Connector 설치 후.서버의 NET에서는 문제가 해소되었습니다.

즉, 솔루션은 프로젝트 레퍼런스가 모두 있는지 확인하는 것입니다.

앞서 설명한 바와 같이 DCOMP는 VC++ 재배포 가능(OpenMP 런타임 구현)의 일부이며 실제로 존재하지 않는 유일한 컴포넌트입니다.나머지는 모두 허위 보고입니다.

특히 API-MS-WIN-XXXX.DLL은 API 세트입니다.기본적으로 Windows 7 이후 단계적으로 도입된 추가 수준의 콜인다이렉션입니다.Dependency Walker의 개발은 그보다 훨씬 전에 중단된 것으로 보이며 API 세트를 제대로 처리할 수 없습니다.

그래서 거기서는 걱정할 것이 없다.넌 아무것도 놓치고 있지 않아.

누락된 DLL 파일을 찾는 더 나은 방법은 프로세스 모니터를 실행하여 모든 시스템 경로에서 특정 DLL 파일에 대해 실패한 프로브의 시퀀스를 검색하는 것입니다.

저도 이 문제에 직면했습니다만, 일반적인 스레드라고 생각되는 솔루션은, 다른 Web 사이트에서도 확인되고 있습니다만, 「재분배 가능한 패키지를 재인스톨 합니다.다만, 제품의 인스톨러(재분배 가능 패키지 설치)를 실행하고, 빛나는 새로운 Visual Studio 2015 빌드를 테스트할 때에 문제가 발생했습니다.

이 문제는 표시된 DLL 파일이 Visual Studio 설치 경로에 없기 때문에(예를 들어 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist) 설치에 추가되지 않았기 때문에 발생합니다.이러한 api-ms-win-* dll은 Visual Studio 2015 설치의 일부로 Windows 10 SDK 설치 경로에 설치됩니다(예: C:\Program Files(x86)\).Windows Kits\10\Redist).

Windows 10 에서의 인스톨은 정상적으로 행해졌지만, Windows 7 에서의 인스톨에서는, 이러한 DLL 파일을 제품 인스톨에 추가할 필요가 있었습니다.자세한 내용은 Visual Studio 2015로 인한 이러한 종속성의 추가를 설명하고 다양한 Windows 플랫폼에 대한 다운로드를 제공하는 WindowsUniversal C 런타임 업데이트를 참조하십시오. 또한 CRT 라이브러리의 재설계를 설명하는 Universal CRT 소개도 참조하십시오.특히 주목되는 것은 Universal CRT를 사용하는 소프트웨어 배포 섹션의 항목 6입니다.

2015년 9월 11일 갱신: Universal CRT의 앱 로컬 도입이 지원됩니다.앱 로컬 배포용 이진 파일을 가져오려면 윈도우즈 SDK(소프트웨어 개발 키트) for 윈도우즈 10을 설치합니다.바이너리가 C:\Program Files(x86)\에 설치됩니다.Windows Kits\10\Redist\ucrt.모든 DLL을 앱과 함께 복사해야 합니다(DLL 파일 집합은 Windows 버전에 따라 다르므로 프로그램이 지원되는 모든 버전의 Windows에서 실행되도록 하려면 모든 DLL 파일을 포함해야 합니다).

이 기여는 첫 번째 질문에 대한 답변은 아니지만, 이 스레드의 히트율을 고려하면 API-MS-WIN-CORE-라이브러리를 찾을 수 없다는 문제에 대처하는 사람은 꽤 있을 것입니다.

API-MS-WIN-CORE-WINRT-STRING-L1-1-0이라는 오류 메시지와 함께 애플리케이션이 시작을 거부하는 문제를 해결할 수 있었습니다.DLL은 단순히 Visual Studio를 업데이트하는 것만으로는 찾을 수 없습니다.

빌드 환경(Windows 7 Pro SP1, Visual Studio Ultimate 2012)이 완전히 엉망진창이 된 것은 아니라고 생각합니다.대부분의 프로젝트에서 정상적으로 동작했습니다.다만, 매우 특수한 상황에서 에러 메세지가 표시됩니다(아래 참조).

Visual Studio 11을 초기 CD-Version(버전 번호를 조회하는 것을 잊었습니다)에서 버전 11.0.61030.00 Update 4로 업데이트한 후에도 손상된 프로젝트가 다시 실행되고 있었습니다.

응용 프로그램 시작 시 오류 메시지

이것으로 문제가 해결되었습니다.

Visual Studio 2010 재배포 가능 패키지가 이미 설치되어 있으면 제거한 다음 마이크로소프트 윈도우즈 7 SDK를 설치하십시오.

나는 그 문제를 해결했다.OCX 파일을 등록할 때 관리자로 실행된 명령 창을 사용하여 실행했습니다.

Photoshop에 문제가 있는 분들을 위해 저의 해결책은 MS VC++ 재배포 가능 x86과 64를 모두 제거하는 것이었습니다.그런 다음 윈도우즈 버전 및 아키텍처에 적합한 버전을 설치합니다(86 또는 64).

새로 설치된 Windows 7에 SQL Server Management Studio 2014를 설치하면 이틀간의 어처구니없는 싸움 끝에 클라이언트에서 이 문제가 해결되었습니다.

Windows 7 OEM 신규 설치를 시도하고 Windows 10으로 업그레이드한 후 이 문제가 발생했습니다.

Microsoft 포럼 등을 검색한 결과, 다음과 같은 솔루션을 찾을 수 있었습니다.

교체하다C:\Windows10Upgrade\wimgapi.dll에서 온 것과 함께C:\Windows\System32\wimgapi.dll

현재 사용 중인 메모리의 용량도 확인해 보시기 바랍니다.

이러한 DLL 파일을 찾을 수 없는 것은 Visual Studio에서 프로그램을 실행 또는 디버깅하려고 할 때 나타나는 첫 번째 증상인 것으로 나타났습니다.

30분 이상 머리를 긁적거리고 웹 검색, 프로세스 모니터 및 태스크 매니저를 실행한 후 처음부터 실행하던 완전히 다른 프로그램에서 "메모리가 부족합니다. 일부 프로그램을 중지해 보십시오." 등의 메시지가 보고되었습니다.Firefox, Thunderbird, Process Monitor 등을 종료한 후 모든 것이 다시 작동했습니다.

저도 같은 문제가 있었어요.몇 시간 동안 웹을 검색한 후, 나는 나를 위한 해결책을 찾았다.

combase.dll 파일을 복사했습니다(C:\Windows\).Release 폴더에 접속하여 문제를 해결했습니다.

여기서 답변을 확인하기 위해 로드되지 않은 DLL과 함께 제공된 ocx 파일을 system32 폴더에 복사하여 문제를 해결했습니다.

언급URL : https://stackoverflow.com/questions/17023419/windows-7-64-bit-dll-problems

반응형