보관함

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… 이었다.

System Power States

출처 : http://www.jiniya.net/wp/archives/4511

Power state ACPI state Description
Working S0 The system is fully usable. Devices that are not in use can save power by entering a lower power state.
Sleep S1 S2 S3 The system appears to be off. Power consumption is reduced to one of several levels, depending on how the system is to be used. The lower the level of power consumption, the more time it takes the system to return to the working state.
Hibernation S4 The system appears to be off. Power consumption is reduced to the lowest level. The system saves the contents of memory to a hibernation file, preserving the state of the operating system, applications, and open documents.
Soft Off S5 The system appears to be off. Some components remain powered so the computer can wake from input from the keyboard, LAN, or a USB device. The working context can be restored if it is stored on nonvolatile media.
Mechanical Off G3 The system is completely off and consumes no power. The system returns to the working state only after a full reboot.

동작 상태(S0), 수면 상태(S1, S2, S3), 하이버네이션 상태(S4), 소프트 오프 상태(S5), 그리고 완전 오프 상태(G3)

하이버네이션을 시키는 방법

전원을 꺼버릴 권한이요. 그렇다면 당연히 해당 권한을 획득

깨우기
웨이터블 타이머(waitable timer)가 정식 명칭인데요, 이 녀석은 하이버네이션 상태가 되더라도 동작

대기 타이머에서 깨어나더라도 운영체제는 시스템을 바로 깨우지 않습니다. 우리가 전원이 필요하다고 운영체제에 알려줄 때 윈도우는 친절히도 시스템에 전원을 넣고 이전 상태로 복구

정규식 샘플