날자별

12월 2019
« 1월    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.