'dll hell'에 해당되는 글 1건

  1. 2008.12.05 visual studio 2005/2008 의 미묘한 버전 차이
C, C++2008. 12. 5. 13:19

Visual Studio 2005/2008 에서 더 이상의 dll hell 을 겪기 싫다는 의견을 반영한 것이
WinSxS 입니다. 요놈은 말하자면 닷넷 GAC의 native 버전이라고 할까나요??!!
어쨌든 요놈 덕에 동일한 이름으로 제공되는 ms의 native dll 을
앞으로는 버전 별로 관리 및 접근할 수 있게 되었습니다.
(참고로 이놈은 XP 이상의 버전에서만 제대로 사용 가능합니다.)
그런데, WinSxS에 dll 복사/설정을 사용하지 않고 배포하는 방법이 msdn 에 있습니다.
그건 vc가 제공하는 redist 경로에 있는 파일/경로를 exe 파일과 동일한 경로에 복사하여 넣는
방법입니다.
 vs2005 와 x86 시스템(주로 인텔계열/32비트 XP,비스타)을 예를 들자면
Microsoft.VC80.ATL
Microsoft.VC80.CRT
Microsoft.VC80.MFC
Microsoft.VC80.MFCLOC
Microsoft.VC80.OPENMP
; 그리고 디버깅 버전용을 위한
Micorosft.VC80.DebugOpenMP
Microsoft.VC80.DebugCRT
Microsoft.VC80.DebugMFC
등이 있습니다. 이 방법은 매우 간단하며, 배포 시에 윈도 경로를 접근하는 보안 문제에 민감한 경우에
사용하기 좋습니다.
그런데...또 그런데...요 방법도 문제는 있습니다. 아무래도 WinSxS 처럼 경로에 gloabl unique id 를 주는
방법이 아니기 때문에 비주얼 스튜디오의 서비스팩등에 의한 버전 차이에 대응하기가 어렵다는 겁니다.
이럴때, 가장 확실한 방법은 빌드한 컴퓨터의 vs의 redist를 복사하면 매우 정확합니다.
그렇지 않은 경우는 WinSxS를 사용하는 것이 더 나은 방법이기도 합니다.
아래는 vs2005의 서비스팩이 적용되기 이전과 이후의 dll 들입니다.
(물론 x86 용만입니다. ie64, amd64 등은 다른 dll을 사용해야 합니다)

'C, C++' 카테고리의 다른 글

QDevelop 설치하기 (ver.0.26)  (0) 2009.01.25
C/C++ 역사  (0) 2009.01.03
visual studio 2005/2008 의 미묘한 버전 차이  (0) 2008.12.05
XToolkit 2008  (0) 2008.11.17
[MFC] CArchive 와 CString  (0) 2008.11.07
[WIN32] 프로그램(프로세스) 한 번에 죽이는 예제  (0) 2008.04.25
Posted by 어쩌다보니 Jay Two

댓글을 달아 주세요