블로그 이미지
인생의무한루프
인생에 무한루프.....

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

Tag

Recent Post

Archive

Recent Comment

Recent Trackback

2008. 11. 28. 23:59 Appication/프로그램 만들기

나만에 프로그램을 만들어보자.#2 ( Platform SDK 란 )


이전의 글에서 Platform SDK와 NSIS가 필요하다고 했는데...
이것들이 먼지 생소한 사람들이 있을거 같아서 글을 좀 적어볼까합니다...프로그램을 만드시려는 분이 설마 VC가
생소하신분은  없겠죠??^^;;

일단 Platform SDK에 대해서 설명을 하겠습니다...
C나 C++을 사용하신분들은 당연히 하게 코딩 제일 위에 보시면 #include "stdio.h" 나 #include <iostream.h>
이런식으로 헤더파일을 참조하겠다고 적습니다..우리는 당연하게 적는 저게 무엇이었을까요?

우리가 간단한 C 프로그램을 짤때 함수를 사용하려면 항상 선언을 합니다..그런데 printf() 나 cin 같은 함수들은
그냥 쓰고 있죠?전 예전 처음 공부할때 저게 무척궁금했었는데....저런 함수들을 선언해 놓은 파일이 stdio.h나
iostream.h 인겁니다....말하자면 stdio.h등의 헤더파일에 누군가가 printf() 함수를 만들어 놔서 저희가 헤더파일을
선언함으로써 사용할수 있는거죠..^^

저런 기본적인 함수들은 기본적으로 VC가 깔릴때 함께 깔리니 특별히 다운받을 필요는 없지만 우리가 윈도우용
프로그램을 만들다보면 여러가지 기능이 필요한데 그 기능을 다 우리가 만들다보면 프로그램하나 만드는데
몇년이 걸릴수도 있죠....-_-;; 다행히 MS에서는 개발자들을 위해 윈도우용 어플리케이션을 만드는데 도움이
되는 여러가지 함수들의 집합을 만들어 놨고....그 함수에 집합이 Platform SDK입니다..
그렇게 보면 MFC도 SDK이겠죠....이부분은 차후에 하도록 하겠습니다...

이 SDK의 종류는 무척이나 많아서 DDKDevice Driver Kit 이라고해서 드라이버를 개발할때 사용하는 함수들을
모아놓은 킷입니다...DDK는 OS마다 나뉘고 지금은 WDK라고해서 비스타 드라이버까지 개발할수 있게 한군데에
모아 놨습니다..그리고 DirectShow SDK는 동영상관련 함수들의 집합이고요...Windows Media SDK를 이용하면
윈도우미디어를 컨트롤 할수 있습니다..이밖에 MS에서 지원하는게 아닌 개인개발자들이 만들어 놓은 여러가지
SDK들이 있으니 필요에따라 자료를 찾아 사용하시면 좀더 편리하게 그리고 짧은 시간에 프로그램을 개발할수
있습니다....^^

일단 SDK를 다운받으려면 MS에 방문해서 다운로드 받아야 됩니다...vc6.0을 지원하는 마지막 버전의 SDK는
Windows® Server 2003 SP1 Platform SDK 입니다...다운로드 받아서 설치하시면 됩니다..
하지만 설치만 한다고 바로 사용할수는 없습니다....
VC에 "나 이런 SDK 있으니깐 내가 개발할때 #include "" 이런식으로 참조하라고 하면 어느폴더로가서 찾아봐~~"
라고 말해줘야 VC에게 직접 말해줘야지 압니다...컴터는 바보니깐요...^^

일단 Tool -> Option 을 선택하신후 Option창이 나오면 Directories를 누르시면 아래와 같이 헤더파일과 라이브러리
경로를 설정할수 있습니다.



include files을 선택하신뒤 Directories 밑에 빈곳을 클릭하면 경로를 설정할수 있는 버튼이 생기고 헤더파일이 있는
곳에 경로를 설정해 주시면 됩니다...경로는 sdk마다 다르겠지만 헤더파일들은 대부분 폴더이름이 include 또는 inc등으로 되어 있습니다...저같은 경우는 C:\Program Files\Microsoft Platform SDK for Windows XP SP2\Include 이곳이 경로입니다....저건 링크를 걸어드린 SDK보다 버전이 낮은겁니다....이제보니 구버전 SDK를 사용하고 있었다는..OTL..
하지만 구지 최신 SDK만 고집할 필요는 없습니다..^^;;(왠지 핑계를 대는듯한..^^;;)


include만 넣어주면 안되죠....헤더파일에는 함수선언만 되어 있고 실제 코딩이 되어있는 파일이 있는곳은 Library 폴더에 있습니다.....차츰 알아나가겠지만 .h 파일과 .cpp 파일을 만들면 .h 파일에는 함수들의 선언만하고 실제는 코딩은 .cpp 파일에 하는것과 동일하다고 생각하시면 되겠네요..콤보박스에서 라이브러리 파일을 선택한뒤 include 폴더를 추가하듯이 추가해주시면 됩니다...폴더이름은 보통 Lib라고 되어 있습니다..
제 경로는 C:\Program Files\Microsoft Platform SDK for Windows XP SP2\Lib 이곳이네요...^^ 참고하세요..


이렇게 추가를 하면 이제 우리가 #include "XXX.h" 등을 추가하면 위에 SDK에 구현되어 있는 편리한 함수들을 사용할수 있습니다...
눈치 빠른분은 아시게지만 저는 DirectX9.0 버전 SDK와 WTL7.0 SDK가 설치되어 있네요...제일 밑에 VC98 경로의 두개의 경로는 vc6.0을 깔면 자동으로 추가되는 것입니다....
개발을 하시다보면 SDK끼리 충돌이 나거나 내가 예상하지 않게 움직일 때가 있는데...그럴때는 사용하고자 하는 SDK를 가장위로 올려놓으면 됩니다....VC는 설정되어 있는 경로중에 가장위에서 부터 선언되어있는 헤더파일을 찾아나가기때문에 동일한 이름을 가지는 헤더가 다른 SDK에 있다면 그 SDK를 참조하게 되므로 생각지도 않는 오동작이나 버그가 발생하게 되니...항상 개발할때 사용할 SDK를 가장위에 올려놓는 습관을 들여야 나중에 엄청난 삽질을 미연에 방지할수 있습니다...^^;;

이게 생각보다 만만치 않은 작업이네요....ㅡ_ㅡ;; 지금까지 글을 보기만 했지 적어보긴 처음인데...
정말 강좌같은것을 올리는 분들이 존경스러워 집니다...ㅠ_ㅠ
posted by 인생의무한루프