2005년 12월 29일 목요일

[펌] [CentOS] 설치 전 준비물...

이 글을 작성하는 2005년 10월 현재는 CentOS가 4.2 버전까지 공개되었다.

 

필자는 4.1버전까지 사용하고 있으며.. 따라서 여기서는 4.1을 중점적으로 소개하도록 하겠다.

 

CenOS 4.1은 4장의 CD로 구성되어 있지만 X-Windows를 설치하지 않는다면 4번째 CD는 필요없을 것이다.

 

이 4장의 CD는 현재까지는 아래의 사이트에서 다운로드 받을 수 있다. (추후 변경될지도 모른다...)

 

http://mirror.centos.org/centos/

 

자신이 다운로드 받고 싶은 버전의 디렉토리로 들어가서 isos 로 들어간 후에 32Bit , 64Bit 중에 선택해서 다운로드 받도록 하자.

 

단 다운로드가 완료되었다고 해도 파일이 손상될 수 있으니 MD5SUMS.cd 파일을 이용해서 MD5 체크를 반드시 하도록 하자..

 

ISO 파일을 다운로드 받았다면 Nero 등의 버닝 프로그램을 이용해서 CD로 굽는다.

X의 GUI를 경험해 보고 싶다면 4장을 다 굽도록 하고 서버로만 이용할 것이라면 1~3 장만 있으면 된다.

 

아주 특이하고 이상한 그래픽 카드나 스카시 버스가 아닌 이상 별 문제 없이 설치할 수 있다..

설치할 PC까지 준비되었다면 CD를 삽입하고 CD부팅 모드로 PC를 켜도록 한다.

[펌] Xbox 360 리뷰 - "기다린 보람이 있다" 2005-12-07 18:29:01

Xbox 360 리뷰 - "기다린 보람이 있다" 2005-12-07 18:29:01
조회수 : 16067

매번 새로운 프로세서와 시스템 그리고 새로운 미디어를 사용하는 게임기가 출시될 때마다 차세대 게임기라는 이름으로 거창하고 원대한 그들의 비전에 대해 이야기 하곤 했다. 특히 패미컴, 새턴. PC엔진, 드림캐스트, 닌텐도 64, 플레이스테이션등은 한 세대의 무료한 삶에 다이나믹한 이야기거리를 만들어줄만큼 대단한 영향력을 지닌 모델들을 독자들은 기억하고 있을 것이다. 그러나 그래픽이나 성능의 향상은 곧 다양한 게임의 진행방식 혹은 흥미로운 주변기기들의 발달로 이어지게 만들었고 발전을 거듭할수록 가정용 게임기는 단순한 게임기능을 넘어서는 새로운 가정용 엔터테인먼트의 중심으로서의 역활을 요구받게 되었다. 더욱이 LCD PDP같이 전시장에서나 볼수 있었던 고가의 TV가 이제는 저렴한 가격으로 가정으로 보급되어지게 된것도 가정용 게임기의 성능을 십분 발휘할수 있는 텃밭이 준비되었다는 이야기 이기도 하다.

특히 디지털 카메라나 MP3플레이어와 같이 최근 전세계적으로 붐업하고 있는 디지털기기들의 컨텐츠를 좀더 손쉽게 관리하고 저장하고 즐길수 있는 홈엔터테인먼트 기기로서의 시도가 단순히 컴퓨터 뿐만이 아닌 다양한 분야에서 시도되고 있는 사실을 잘 알고 있다면 오히려 너무나 쉽게 가정의 일부분으로 수용되어 버린 게임기는 미래의 디지털 허브가 될 가능성이 높지 않을까 생각해 본다.그런점에서 마이크로 소프트의 Xbox는 윈도즈라는 OS의 개발사라는 측면에서 상당한  우위를 차지한 기계임이 분명하다. 초기 Xbox가 상당한 스펙을 가지고 있음에도 불구하고 부족한 홈엔터테인먼트 기기로의 변화를 기대했던 여러 해커들에 의해 개조되고 개발되어 지게 된 까닭은 아마도 지금의 xbox360을 탄생시키기 위한 마이크로 소프트의 전략이었지 않나라는 생각도 하게 된다.

1121일 북미에서 최초 발매를 시작한 xbox360은 출시전 세간의 기대만큼이나 인기를 과시할정도로 발매당일전날 부터 구매를 위한 인파가 줄을 지었다. 발매일 새벽4시부터 구매를 위한 번호표를 나눠주었지만 몇대 않되는 초도물량의 부족으로 구매에 참가하지 못한 사람들이 더 많았다.이번 xbox360의 구매불참에 대한 사람들의 분노와 실망은 PSP발매때보다도 더 심했다. 그런 사람들을 상대로 심지어 번호표를 즉석에서 $400에 판매하는 업자들도 있었으니(그 번호표를 구매하기 위해서도 격렬한 몸싸움이 있었다) xbox360을 위해 강도질을 했다는 뉴스가 그리 놀라울것도 아니었다.

도대체 얼마나 대단한 기기이길래 사람들이 열광하는 것인지 이제부터 필자와 함께 xbox360에 대해 조금씩 알아가 보도록 하자.

 

일단 $400상당의 프리미엄 패키지에는 xbox360 본체와 무선컨트롤러, 착탈식의 20G하드드라이브, 모노헤드셋, DC12V 전용 어답터, 컴포넌트 HD AV케이블, 랜케이블과 보너스 아이템으로 미디어리모컨이 포함되어 있다. 특이하게도 기기를 개봉하기전의 연두색의 비닐 패키지에는 각나라의 언어로 패키지의 구성물을 표시해놓았는데 그중 한글이 가장크고 뚜렷하게 각각의 패키지에 인쇄되어 있는것으로 보아 마이크로 소프트사에서 한국의 게임시장과 유저들에 대해 상당히 많은 인지를 하고 있음을 알수 있다.

 

본체는 마치 미니타워스타일의 PC를 보는것 처럼 작고 컴팩트한 느낌이다. 특히 이전 커다란 사이즈의 xbox에 비해 이제는 거실에 내놓아도 손색이 없을것 같은 슬림한 디자인(308 x,83 x 257.8mm, 무게는 약4kg)과 그레이 화이트톤이 게임기라는 인상을 전혀 풍기지 않고 있다. 전면에는 디스크를 삽입하는 트레이와 오픈버튼, 파워버튼, 리모트센서(컨트롤러 혹은 리모컨 제어), 2개의 메모리슬롯, 2개의 USB슬롯이 준비되어 있다. USB슬롯은 사용자가 가지고 있는 디지털 카메라나 MP3플레이어를 연결해 이미지나 MP3와 같은 컨텐츠를 xbox360에서 재생할수 있도록 해주는 역할을 한다.

 

AA배터리로 동작하는 무선컨트롤러(유선도 동일한 디자인)는 기존 xbox에 사용되던 S타입의 컨트롤러보다도 외관은 작아졌지만 버튼이나 스틱의 사이즈는 그대로 유지해 놓은 덕분에 손이 작은 유저들에게도 쾌적한 그립감을 제공해준다. 일단 무선으로 동장한다는 점이 기존의 게임기에서는 좀처럼 보기 힘든 새로운 컨트롤 인터페이스다. 물론 기존의 게임기도 주변기기 서드파티회사에서 발매하는 컨트롤러들이 있었지만 성능이나 반응속도등 무선이 주는 여러가지 기술적인 제약으로 인해 대중화되지 못해던 부분이 많았다. 그러나 xbox360에서 기본으로 제공하는 2.4Ghz의 무선컨트롤 기술은 이제 컨트롤러 자체를 마치 TV의 리모컨을 이용하듯 사용할수 있게 됐다.

 

xbox360컨트롤러의 중앙에 위치한 xbox로고버튼을 수초간 누르고 있으면 xbox360본체의 전원을 켤수도 혹은 끌수도 있다. 무선이라고 해서 진동이 작동하지 않으리라는 필자의 예상을 깬것도 상당한 충격이었다. 릿지레이서6처럼 반응속도에 민감한 레이싱게임을 플레이해 보아도 유선으로즐기는 것과 동일한 반응속도와 버튼입력에 대한 만족감을 준다. 게다가 여러대의 무선패드를 사용할경우 자신이 몇번째 플레이어인지에 대한 불분명함도 x로고버튼뒤에 준비된 4개의 연두색 LED의 위치로 알려준다. 컨트롤러가 본체와 연결되면 본체의 파워버튼에서도 똑같은 방법으로 현재 몇명의 컨트롤러가 본체와 연결되었는지 LED라이트로 알려준다.

 

그럼 xbox360의 대쉬보드는 사용자가 마음대로 배경화면을 바꿀수 있는 옵션을 제공하고 있다, 물론 하드웨어 전면의 페이스 패널도 교체가 가능하도록 되어 있어 유저 개개인이 자신의 스타일에 맞도록 안밖으로 커스터마이징할수 있다는 점이 인상적이다. 그럼 xbox360의 대쉬보드에 대해 알아보도록 하자! 대쉬보드는 게임이 트레이에 없을때 표시되는 유저 인터페이스로 xbox360이 할수 있는 모든기능들을 손쉽게 접근할수 있도록 표현해주는 화면이다. 인터페이스의 디자인은 xbox360과 유사한 곡선형태로 마치 파일의 탭을 이동하듯 좌우로 탭을 이동해 가며 탭에 해당되는 내용들을 열람하거나 억세스 할수 있다. 이번 xbox360에는 이전 xbox에서도 사용되었던 xbox Live라는 네트워크 연동서비스를 좀더 자사의 윈도즈나 핫메일 서비스와 적극적으로 연동하기 위해 억세스 자체를 핫메일혹은 MSN계정으로 등록하게끔 유도하고 있으며 미디어 센터나 XP와 같은 운영체제와의 연동도 함께 지원하도록 되어 있다.

결국 xbox360이 네트워크와 연결되어 있으면 xbox360의 게임중의 팀플레이나 대전 게임은 물론이거니와 자신이 등록한 이메일계정에서 친구로 부터 오는 쪽지같은 것도 xbox360와 연결된 TV에서 읽고 답장할수 있으며 라이브로 연결하면 마켓플레이스라는 장소에서 앞으로 출시될 게임의 데모나 하드디스크에 저장해 플레이 하는 아케이드 게임같은 미니게임도 다운받을수 있다. 물론 여기에는 좀더 합법적이고 생산적으로 컨텐츠를 판매하려는 마이크로 소프트의 계산된 수익 시스템이 보인다. 특히 국내의 무수한 불법 카피게임을 즐겼던 분들에게는 앞으로 펼쳐질 네트워크 서비스에 대한 비용 지출에 반감을 가지는 분들도 적지 않을 것이라고 생각된다.(물론 필자도 그중 한사람이다)

게다가 컴퓨터에 저장된 이미지나 음악도 케이블 혹은 무선랜을 통해 집안 어느곳에서나 TV를 통해 다양한 컨텐츠를 즐길수 있다. 20G착탈식의 하드드라이브에는 영화나 CD로부터 다운로드되는 음악을 저장해놓고 볼수 있다. 특히 미디어 센터에서 지원하는 TV녹화등의 기능도 미디어리모컨을 통해 제어가 가능하다. 재미있는 사실은 xbox360게임의 플레이시 하드디스크에 저장되어 있는 음악을 사운드트랙으로 변경해 색다른 플레이를 할수 있다는 점이다. 물론 플래시 메모리나 MP3플레이어에 들어 있는 파일을 xbox360의 하드디스크에 다운로드 할수는 없다.(네트워크에 있는 파일도 다운로드 할수 없으며 오직 CD에서만 립핑이 가능하다)

 

게임프로파일이라는 시스템이 xbox360에 존재하는 것도 윈도즈의 로그인 시스템과 상당히 유사하다. 다양한 층의 플레이어가 있는 집에서도 각각의 사용자가 자신의 프로파일을 만들고 자신의 경험치나 혹은 자신의 메시지를 따로 관리해 하나의 시스템에서도 여러사용자가 독립적인 환경을 구축할수 있도록 커스터마이징하는 시스템은 기존의 어느 게임기에서도 볼수 없었던 매우 독창적인 시스템이 아닐수 없다.

실제로 게임을 즐겨보지 않으면 과연 HD라는 고해상도의 화면에 대한 감동이 어떻다는 것은 단지 글이나 이미지로 표현할수 없을 정도로 기존의 xbox에서 느꼈던 몇배의 감동이 이번 HD화질에서 느껴진다. 릿지레이서6나 니드포스피드 모스트원티드와 같이 고속의 그래픽 엔진이 필요한 게임을 플레이 해도 그래픽이 깨진다던지 혹은 텍스쳐가 어색하게 표현된다던지 하는 점은 찾아 볼수 없었다. 오히려 게임센터에서도 경험하기 힘든 초고해상도의 경이로운 체험은 과연 xbox360이 가정용 게임기인지 업소용 게임기인지에 대한 분간이 어렵게 만든다. HD화질을 즐기기 위해서는 본체와 연결되는 HD AV케이블의 측면에 있는 슬라이더를 HDTV쪽으로 이동해주면 자동으로 xbox360이 재부팅되고 HD화질의 게임을 경험할수 있다. 물론 외부 오디오 디코더를 소유한 유저라면 xbox360본체로 연결되는 HD케이블에 광단자를 연결해 5.1채널혹은 DTS등의 강력한 사운드를 즐길수 있다.

기본적으로 xbox360은 지원되는 프로파일만 있으면 기존 xbox 400개가 넘는 게임을 즐길수 있다. 물론 현재는 200개정도만 네트워크를 통해 프로파일을 다운로드 할수 있으며 헤일로2와 같은 게임은 미리 xbox360의 하드디스크에 프로파일이 저장되어 있어 곧바로 플레이가 가능하지만, 언제 어떤 게임이 지원될지는 미정인 관계로 xbox1용 게임 플레이는 상당히 제한적이라고 볼수 있다.(국가코드가 다른 게임의 지원도 불분명하다)

xbox360은 기본적으로 DVD-ROM 듀얼레이어만 지원하는 관계로 가격적으로 현재 대중화되고 있는 DVD+ROM미디어로 카피된 DVD영상물은 플레이 할수 없었다. 음악CD의 경우는 상관없지만 DVD영상물은 지역코드가 존재하는 경우 미국판으로 발매된 컨텐츠 이외에는 플레이가 불가능하다. (이 국가코드는 게임에서도 존재한다) DVD미디어는 트레이어 넣기만 하면 자동적으로 플레이 되며 무선 컨트롤러나 미디어 리모컨으로도 제어가 가능하다. 미디어 플레이어를 연상하게하는 버튼으로만 이루어진 간결한 DVD/CD의 플레이어 인터페이스는 처음 사용자에게도 쉽게 접근할수 있도록 해준다. CD음악을 플레이할 경우 그래픽 이퀄라이져의 사용도 가능해 대쉬보드의 복잡한 화면대신 음의 고저나 비트에 따라 다양하게 변하는 이퀄라이져를 화면전체에 디스플레이 할수 있는 기능도 제공한다.

대쉬보드상태일때와 게임시디를 읽고 있을때 동작하는 팬의 소음이 상당한 차이를 보였다. 물론 시디가 동작하는 동안 고열로 인한 오동작을 최초화 하고자 자동적으로 팬의 속도가 변화하는 것도 있겠지만 조용한 방에서도 귀에 거슬리지 않을 정도의 소음이 발생하는 것은 게임플레이시에는 거의 인지 하지 못하는 수준이다.

전반적으로 상당한 디테일과 성능을 가진 xbox360은 아직 기기가 가진 성능을 제대로 발휘할수 있는 소프트웨어가 없는것 같은 느낌이다. xbox1용 타이틀로는 필자개인적으로 최고로 꼽는 번아웃과 같은 게임이 최소 1년이 지난후에서야 개발자들의 기기에 대한 높은 이해를 통해 게이머들에게 발매될수 있을 것이라는 생각이 든다. 물론 그동안은 홈엔터테인먼트기기로서 다양한 시도가 있을 것이고 적은 비용으로 PVR(Personal Video Recorder)시스템과 전자앨범 그리고 디지털 뮤직플레이어로서 다양한 매체와 그들을 보다 효과적으로 즐길수 있도록해주는 TV와 오디오의 허브로서 당당히 자리매김할 것이다.

2005년 12월 28일 수요일

[펌] Sleipnir 2.00 beta 5 번역 시도중...

Sleipnir 는 내가 지금 쓰는 Avant Browser를 쓰기 전에 즐겨쓰던 탭 브라우저다.
 
간만에 하드디스크 파일 정리를 하다가 설치 파일을 아직 안 버리고 냅뒀길래 그쪽 홈페이지에 찾아갔더니 2.00 beta 5 를 진행중이어서 혹시나 해서 다운받았다. 역시나 Only 일본어 지원. 예전 1.4 버전때는 영어 버전도 있었는데 2.0 대에서는 아직 일본어 버전만 있었다(일본에서 만든 녀석).
 
구조를 xml 기반으로 확 뜯어고쳤길래 이리저리 살펴보다가 랭귀지 파일을 발견했다. 역시 japanese 랭귀지 팩만 있고 다른 언어 팩은 존재하지 않으며, 옵션을 아무리 디벼봐도 언어를 바꾸는 옵션을 발견하지 못했다. 그래서 일본어 언어팩을 백업해두고 그 랭귀지 팩을 직접 뜯어 고쳐보고 있다.
 
별다른 가이드도 없고, xml 파일을 직접 에디팅하면서 고쳐보고 있는데.. 이거 작업이 장난이 아닐 듯 하다. -_-; 무엇보다도 가이드가 없는 것이 치명적.. 한 30분 해본 결과는 아래와 같다.
 
떨렁 메뉴 두개 했다.. OTL
 
이것저것 필요한 기능이 있어서 관심 있어 하는 브라우저라 반갑기까지 하다.
또 이 녀석은 Gecko 엔진(버전 1.7)까지 탑재하고 있다. 파이어폭스와 IE를 이중으로 띄울 일이 없다는 면에서는 Netscape 8 과 같은 느낌이지만, Netscape 8 은 IE 랜더링 엔진을 Gecko 엔진(였던) 위에 대충 올려둔 느낌이고(그나마 IE 랜더링 엔진을 포함하고 있는게 아니고 Windows의 것을 사용하기 때문에 도대체 왜 그렇게 했냐고 묻고 싶기까지 하다-_-), 엄청나게 무겁다. 하지만 이 녀석은 그 정도로 무겁진 않다. 물론 Gecko 엔진의 세부 설정을 변경하려면 일일히 chrome을 건드리거나 Gecko 랜더링 엔진 모드 상태에서 about:config을 통해서 해야하긴 하지만..
 
포럼에 참여해서 제대로 하는게 더욱 좋겠지만, 이 프로그램의 포럼도 영어 한마디 없는 일본어 판이니 참여가 가능할런지도 까칠하다. -_-)a 그냥 내 쓸 용도로 해볼 수 밖에..
 
참고로 이 프로그램의 홈페이지는 http://sleipnir.pos.to 다. 왼쪽 상단의 language 메뉴는 기대하지 말 것. 익사이트 재팬의 페이지 번역기 링크일 뿐이다. -_-;

2005년 12월 25일 일요일

[펌] 국악으로 외우는 구구단"


국악으로 외우는 구구단

● 2X1=2, 2X2=4, 2X3=6, 2X4=8, 2X5=10, 2X6=12, 2X7=14, 2X8=16, 2X9=18

● 3X1=3, 3X2=6, 3X3=9, 3X4=12, 3X5=15, 3X6=18, 3X7=21, 3X8=24, 3X9=27

● 4X1=4, 4X2=8, 4X3=12, 4X4=16, 4X5=20, 4X6=24, 4X7=28, 4X8=32, 4X9=36

● 5X1=5, 5X2=10, 5X3=15, 5X4=20, 5X5=25, 5X6=30, 5X7=35, 5X8=40, 5X9=45

● 6X1=6, 6X2=12, 6X3=18, 6X4=24, 6X5=30, 6X6=36, 6X7=42, 6X8=48, 6X9=54

● 7X1=7, 7X2=14, 7X3=21, 7X4=28, 7X5=35, 7X6=42, 7X7=49, 7X8=56, 7X9=63

● 8X1=8, 8X2=16, 8X3=24, 8X4=32, 8X5=40, 8X6=48, 8X7=56, 8X8=64, 8X9=72

● 9X1=9, 9X2=18, 9X3=27, 9X4=36, 9X5=45, 9X6=54, 9X7=63, 9X8=72, 9X9=81




원본: 국악으로 외우는 구구단"

[펌] 안양유원지 예술공원으로 단장 - SBS

 

[수원] 안양유원지 예술공원으로 단장

2005-05-10 (17:53)

<앵커

네, 조지현 기자 잘봤습니다. 이번엔 수원으로 가보겠습니다,

안미정 리포터! (네, 수원입니다.) 안양 유원지는 그동안 사실 행락지, 이런 느낌이 강했는데요. 이번에 새단장을 하게 된다면서요?

<리포터>

네! 관악산 자락의 안양 유원지는 그동안 단순히 휴식공간의 차원에 머물렀는데요.

이번에 종합 문화 예술공간으로 새롭게 태어 난다고 합니다.

그 현장으로 함께 가보시죠.

관악산의 험준한 봉우리가 남으로 뻗으며 절경을 이루는 안양 유원지 계곡.

이곳 안양 유원지는 보시는 것처럼 물도 맑고 또 이렇게 산세도 좋아 오래전부터 시민들이 휴식을 위해 찾는 쉼터로 이름 높았습니다.

그러나, 1950년대 이후 경치 좋은 계곡 옆으로 음식점이 하나둘 생겼습니다.

차츰 먹고, 마시며 즐기는 식당촌이 돼버렸는데요.

무질서하게 들어선 식당 건물로 계곡의 자연과 환경이 크게 손상된 것은 당연한 결과.

보다 못한 안양시가 유원지의 면모를 바꾸겠다면서 팔을 걷어 부쳤습니다.

[신중대/안양시장 : 수도권의 명소였던 안양 유원지를 하천 정비 사업을 하고 인공 폭포같은 조경 사업을 통해 확 바꿔놓을 생각입니다.단순히 미관만 수려한 곳이 아니라 자연과 예술이 살아 숨쉬는 세계적인 명소로 만들 계획입니다.]

이를 위해 안양시는 1단계로 230억원을 들여 계곡을 원래의 모습대로 돌려 놓고 있습니다.

지금은 공사가 거의 마무리돼 어수선했던 계곡 주변이 말끔히 정비된 모습입니다.

쾌적한 환경을 되찾은 계곡.

이제 남은 것은 문화 예술공간으로 탈바꿈하는 일입니다.

안양시는 종합 예술공간으로 격을 높이기 위해 2백억원의 예산을 투입해 이곳 계곡 주변으로 야외 공연장과 예술작품을 설치할 예정입니다.

세계적인 수준의 조각가와 건축가들을 초빙하고...

이들이 만든 작품을 10월 까지 유원지 계곡에 전시할 계획입니다.

[이영철 교수/예술감독 : 방문객들이 쭉 1.4km를 따라 하천을 이동하면서 전체적으로 한바퀴 돌수 있도록 하면서 구역을 나눴는데요.각각의 구역들은 다양한 형태의 건축작품, 예술작품, 디자인 작품이 포함되겠습니다.]

그러나, 해결해야 할 과제도 있습니다.

기존의 식당 건물들을 헐고 예술공간의 분위기를 살리는 새 건축물로 다시 짓는 작업인데요.

사유재산이라 쉽지만은 않아 보입니다.

[김영일/유원지개발팀장 : 예술, 미술, 조경, 건축으로 된 민간인 안양시 건축 자문단에서 엄격히 통제해 차후에 벌어질 프로젝트에 어울리는 아름다운 건축물을 만들려 노력하고 있습니다.]

일정대로 된다면 단풍이 물드는 10월 쯤 관악산에서 새로운 면모의 안양 유원지와 만날 수 있을 것 같습니다.



김문환 기자 kim34@sbs.co.kr

2005년 12월 22일 목요일

[펌] Boost 설치 및 설정

Boost 라이브러리는 아주 유용한 C++ 라이브러리를 제공한다.

프로그래밍을 하면서 필요한 유틸 라이브러리를 일일히 다 만들어 쓴다면 포퍼먼스도 문제가 될것이고 시간적인 비용도 많이 들것이다.

따라서 이런 유용한 라이브러리를 제대로 잘 알고 사용하는 것은 무척 중요하다.

헌데, 사실 나도 잘 모른다 ㅋㅋㅋ

이제 알아가야지 --*

 

자 우선 설치를 해본다.

설치랄건 없고 boost 라이브러리를 인스톨 하는 과정이다.

(머 이렇게 안해도 해당 헤더와 라이브러리를 그냥 써도 될거 같긴하지만 --;;)

 

OS : WinXP Pro

 

우선 Jam을 빌드 한다.

※ Boost.Jam 인스톨 방법
1. $[BOOSTROOT]\tools\build\jam_src\build.bat를 실행시킨다.
2. $[BOOSTROOT]\tools\build\jam_src\ 에 bin.ntx86 디렉토리가 생기며 이 안에 보면 bjam.exe가 생긴다.

3. Path를 잡아 주던지 컴파일러의 위치에(BC++이나 VC++의 컴파일러 디렉토리) 카피를 해서 사용한다.

 

※ Boost 인스톨 방법

1. Boost.Jam을 인스톨한다.(위의 Boost.Jam 인스톨 참고)
1. 커맨드 창에서 $[BOOSTROOT]루트로 간다.
2. bjam -sTOOLS=borland install 을 친다.

3. C드라이브에 Boost 폴더가 생겨 있으며 lib와 include 폴더가 있다.

 

머 사실 인스톨이래봐야 특별한건 없는거 같고 해당 Boost에서 라이브러리랑 헤더만 뽑아서 카피를 하는 방식인듯...

거기 보면 DLL과 static Lib가 모두 있으며 입맛따라 골라 쓰면 될것이다.

boost~.lib는 DLL 의 lib이고 lib~.lib는 static 라이브러리이다.

 

DLL을 사용할려면 한가지 과정을 더 거쳐야 한다.

$[BOOSTROOT]\config 디렉토리에서 user.hpp 파일을 연다.

아마도 #define 문들이 모두 주석으로 되 있을건데 #define BOOST_ALL_DYN_LINK 의 이름이 왠지 의심스럽다.

이 부분 주석을 없앤다.(머 주석에도 주저리주저리 나와 있당 --;;)

 

- 참고  

   ㆍBoost Getting Started : http://www.boost.org/more/getting_started.html#step1

[펌] shared_ptr 사용법

 

shared_ptr

  • new 를 해주고 delete 하는 것 에서 해방을!
  • 표준 라이브러리에도 auto_ptr 이라고 같은 개념의 클래스가 있지만, 버그가 있다. -_-;; auto_ptr를 컨테이너에 집어넣으면 버그땜시 스스로 삭제가 안되 메모리가 새는 아주 심각한 문제이다.
... 
#include <boost/smart_ptr.hpp> 
... 
using namespace boost; 
... 
class Vertex3D {...} 
typedef shared_ptr<Vertex3D> Vertex3DSPtr; 
typedef vector<Vertex3DSPtr> Vertexs; // 단어 틀렸다는거 알지만 그냥 씀 -_- 
typedef Vertexs::size_type VertexsSize; 
typedef Vertexs::iterator VertexsItr; 
typedef shared_ptr<Vertexs> VertexsSPtr; 
... 
{ 
  VertexsSPtr vertexs(new Vertexs); 
  Vertex3DSPtr vertex(new Vertex3D); 
  ... 
  vertexs->push_back(vertex); 
  ... 
} 
  • new 를 했지만 delete 를 안해도 지가 알아서 사라진다.
  • 모든 객체에 스마트포인터를 쓰도록 프로그램 짜면 자바같은 느낌으로 짤수도 ...

shared_ptr_example

shared_ptr_example.cpp
//  Boost shared_ptr_example.cpp  --------------------------------------------// 
 
//  (C) Copyright Beman Dawes 2001. Permission to copy, 
//  use, modify, sell and distribute this software is granted provided this 
//  copyright notice appears in all copies. This software is provided "as is" 
//  without express or implied warranty, and with no claim as to its 
//  suitability for any purpose. 
 
//  See http://www.boost.org for most recent version including documentation. 
 
//  Revision History 
//  21 May 01  Initial complete version (Beman Dawes) 
 
//  The original code for this example appeared in the shared_ptr documentation. 
//  Ray Gallimore pointed out that foo_set was missing a Compare template 
//  argument, so would not work as intended.  At that point the code was 
//  turned into an actual .cpp file so it could be compiled and tested. 
 
#include <vector> 
#include <set> 
#include <iostream> 
#include <algorithm> 
#include <boost/shared_ptr.hpp> 
 
//  The application will produce a series of 
//  objects of type Foo which later must be 
//  accessed both by occurrence (std::vector) 
//  and by ordering relationship (std::set). 
 
struct Foo 
{ 
  Foo( int _x ) : x(_x) {} 
  ~Foo() { std::cout << "Destructing a Foo with x=" << x << "\n"; } 
  int x; 
  /* ... */ 
}; 
 
typedef boost::shared_ptr<Foo> FooPtr; 
 
struct FooPtrOps 
{ 
  bool operator()( const FooPtr & a, const FooPtr & b ) 
    { return a->x > b->x; } 
  void operator()( const FooPtr & a ) 
    { std::cout << a->x << "\n"; } 
}; 
 
int main() 
{ 
  std::vector<FooPtr>         foo_vector; 
  std::set<FooPtr,FooPtrOps>  foo_set; // NOT multiset! 
 
  FooPtr foo_ptr( new Foo( 2 ) ); 
  foo_vector.push_back( foo_ptr ); 
  foo_set.insert( foo_ptr ); 
 
  foo_ptr.reset( new Foo( 1 ) ); 
  foo_vector.push_back( foo_ptr ); 
  foo_set.insert( foo_ptr ); 
 
  foo_ptr.reset( new Foo( 3 ) ); 
  foo_vector.push_back( foo_ptr ); 
  foo_set.insert( foo_ptr ); 
 
  foo_ptr.reset ( new Foo( 2 ) ); 
  foo_vector.push_back( foo_ptr ); 
  foo_set.insert( foo_ptr ); 
 
  std::cout << "foo_vector:\n"; 
  std::for_each( foo_vector.begin(), foo_vector.end(), FooPtrOps() ); 
 
  std::cout << "\nfoo_set:\n"; 
  std::for_each( foo_set.begin(), foo_set.end(), FooPtrOps() ); 
  std::cout << "\n"; 
 
//  Expected output: 
// 
//   foo_vector: 
//   2 
//   1 
//   3 
//   2 
// 
//   foo_set: 
//   3 
//   2 
//   1 
// 
//   Destructing a Foo with x=2 
//   Destructing a Foo with x=1 
//   Destructing a Foo with x=3 
//   Destructing a Foo with x=2 
 
  return 0; 
} 

shared_ptr_example2

shared_ptr_example2.hpp (헉 이너클래스가 되네.. 처음봤다 --;;)
//  Boost shared_ptr_example2 header file  -----------------------------------// 
 
#include <boost/shared_ptr.hpp> 
 
//  This example demonstrates the handle/body idiom (also called pimpl and 
//  several other names).  It separates the interface (in this header file) 
//  from the implementation (in shared_ptr_example2.cpp). 
 
//  Note that even though example::implementation is an incomplete type in 
//  some translation units using this header, shared_ptr< implementation > 
//  is still valid because the type is complete where it counts - in the 
//  shared_ptr_example2.cpp translation unit where functions requiring a 
//  complete type are actually instantiated. 
 
class example 
{ 
 public: 
  example(); 
  example( const example & ); 
  example & operator=( const example & ); 
  void do_something(); 
 private: 
  class implementation; 
  boost::shared_ptr< implementation > _imp; // hide implementation details 
}; 

shared_ptr_example2.cpp

// Boost shared_ptr_example2 implementation file  -----------------------------// 
 
#include "shared_ptr_example2.hpp" 
#include <iostream> 
 
class example::implementation 
{ 
 public: 
  ~implementation() { std::cout << "destroying implementation\n"; } 
}; 
 
example::example() : _imp( new implementation ) {} 
example::example( const example & s ) : _imp( s._imp ) {} 
 
example & example::operator=( const example & s ) 
  { _imp = s._imp; return *this; } 
 
void example::do_something() 
  { std::cout << "use_count() is " << _imp.use_count() << "\n"; } 

shared_ptr_example2_test.cpp

// Boost shared_ptr_example2_test main program  ------------------------------// 
 
#include "shared_ptr_example2.hpp" 
 
int main() 
{ 
  example a; 
  a.do_something(); 
  example b(a); 
  b.do_something(); 
  example c; 
  c = a; 
  c.do_something(); 
  return 0; 
} 

[펌] WTL 7.1

출처: Devpia

Windows Template Library ( WTL )  version 7.1

==============================================

Microsoft Download Page  (Size 539 KB, Release date: December9 2003)

http://www.microsoft.com/downloads/details.aspx?FamilyId=1BE1EB52-AA96-4685-99A5-4256737781C5&displaylang=en

 

MS에서 WTL71.exe 를 받아서 압축을 풀면

  AppWiz60     : Visual Studio 6.0 에서 사용할 수 있는 파일

  AppWiz70     : Visual Studio.NET 2003 에서 사용할 수 있는 파일

  AppWizCE    : Embedded Visual C++ 3, 4에서 사용할 수 있는 파일

  include        : 헤더파일

  Samples      : 예제가 있더군요

  readme.htm  :  이 파일을 읽으면 변경 내역과 설치법이 나온다.

마지막에 vs를 실행하여 디렉토리는 직접 잡아 줘야한다. (6.0만 그런가???)

 

공식적으로 MS에서는 WTL에 대한 지원은 없다...

 

 


[펌] WTL 정리

출처 : jacking75 (블로그) & 개인홈피

일본의 http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/index.html
에서 가져온 자료를 번역기로 1차 번역 후 본인이 약간 손을 본 자료입니다.
WTL에 대해서 좋은 정보를 얻으셨다면 위 사이트의 주인의 덕택입니다.

 

 

ATL/WTL

 

 



































다이얼로그 사이즈







MRU 파일 리스트



부록