본문 바로가기

Robotics/Articles

Visual c++(9.0) 응용 프로그램 종속성

아래 사이트를 참고하자.

http://msdn.microsoft.com/ko-kr/library/ms235265.aspx


응용 프로그램에 사용되고 있는 Visual C++ 라이브러리를 확인하기 위한 방법 중 하나로 프로젝트의 속성 페이지 대화 상자에서 일반 탭의 내용을 살펴볼 수 있습니다. 예를 들어, 프로젝트에서 MFC 및 ATL 라이브러리를 사용하고 있다고 표시될 수 있습니다. 동적 라이브러리에서 MFC 사용을 선택하면 런타임에 응용 프로그램을 실행할 때 mfc90.dll 같은 MFC DLL이 사용됩니다. 응용 프로그램에서 MFC나 ATL을 사용하지 않더라도 구성 속성의 C/C++ 분기에 있는 코드 생성 탭에서 런타임 라이브러리에 대해 다중 스레드 디버그 DLL(/MDd)을 선택한 경우 이 응용 프로그램은 CRT 라이브러리에 종속될 수 있습니다.

Visual C++와 함께 제공되는 Dependency Walker(depends.exe)를 사용하여 응용 프로그램을 열면 응용 프로그램에 사용되는 DLL을 자세하게 살펴볼 수 있습니다. Depends.exe는 \Microsoft Visual Studio 2005\Common7\Tools\bin에 설치됩니다. depends.exe는 Visual C++ 사용자 지정 설치에서 Visual C++ 도구 범주에 있는 Windows SDK 도구를 선택한 경우에만 설치됩니다.

/DEPENDENTS 옵션을 지정하여 depends.exe 또는 DUMPBIN 유틸리티를 실행하면 응용 프로그램에 정적으로 연결된 DLL 목록과 응용 프로그램의 지연 로드된 DLL 목록을 볼 수 있습니다.

ActiveX 컨트롤과 같이 동적으로 로드되는 DLL을 확인하려면 depends.exe의 프로파일링 기능을 사용한 다음 모든 코드 경로에 대해 조사를 마칠 때까지 응용 프로그램을 테스트합니다. depends.exe에서 프로파일링 세션이 끝나면 동적으로 로드되는 DLL이 표시됩니다.

depends.exe를 사용하여 종속성을 확인할 때 DLL이 다른 DLL이나 특정 DLL 버전에 대해 종속성을 가질 수도 있다는 점에 유의해야 합니다. depends.exe는 개발 컴퓨터 또는 대상 컴퓨터에서 사용할 수 있습니다. 개발 컴퓨터에서 depends.exe를 실행하면 응용 프로그램을 지원하는 데 필요한 DLL 목록이 표시됩니다. 대상 컴퓨터에서 응용 프로그램을 실행하는 데 문제가 발생할 경우에는 depends.exe를 대상 컴퓨터에 복사한 다음 depends.exe에서 응용 프로그램을 엽니다. 그러면 depends.exe에서 없거나 버전이 잘못된 응용 프로그램의 DLL 목록이 생성됩니다.

응용 프로그램이 종속된 DLL의 전체 목록이 생성되면 응용 프로그램을 다른 컴퓨터에 배포할 때 이 응용 프로그램과 함께 재배포할 DLL을 이 목록 중에서 확인할 수 있습니다. 대부분의 경우 시스템 DLL은 다시 배포할 필요가 없지만 Visual C++ 라이브러리용 DLL은 다시 배포해야 할 수 있습니다. 자세한 내용은 재배포할 DLL 확인을 참조하십시오.