보관함

Static project & Dynamic Dll project

개발환경 : Windows XP 32, IE 8.0, VC++ 6.0, Platform SDK 2003 Feu

Static 프로젝트 작업을 진행할때 프로젝트가 빌드 되는 시점에 깔려 있는 Internet Explorer의 버전에 따라서 Windows 의 System32 안에 있는 Wininet.dll의 버전에 종속되는 wininet.lib를 사용하는 것으로 보인다.

내 경우에 IE 8.0이 깔려 있는 곳에서 빌드를 하다 보니 6.0이 깔려 있는 곳에서 프로그램이 실행이 되지 않는 문제점을 발견했다. 처음에는 VC 버전에 연관이 있는가 싶어서 VC++ 2003으로 개발 환경을 바꿨더니 IE 7.0이 있는 환경에서 실행이 잘 되는 것 아닌가.

아~~ 되었구나 싶었는데…… IE 6.0이 깔려 있는 환경에서 다시 실행을 해봤더니 실행이 다시 안된다. -_-

결국 static 인 프로젝트 안에서 정적 링크되는 라이브러리를 없어고 dll을 loadlibrary를 통하여 실행하도록 수정했더니 IE가 6.0이건 IE가 7.0이건 IE가 8.0이건 실행이 된다.

참고)  IE가 6버전인경우 Wininet.dll 의 버전도 6.xx 이고 IE가 7버전인경우 Wininet.dll의 버전도 7.xx이고 IE를 8버전인경우는 Wininet.dll의 버전은 8.xx 대였다. depends.exe로 본 결과 Wininet.dll을 빌드시킨 linker도 6.xx, 7.xx… 이었다.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.