최신 정보/IT2009/05/13 08:12

마이크로소프트(MS)가 개발하고 있는 운영체제(OS) 윈도7이 이르면 11월 출시된다.

한국MS 관계자는 12일 "차세대 OS인 윈도7 공개가 올해 4분기 할리데이 시즌에 이뤄지는 것으로 결정됐다"며 "하지만 정확한 날짜는 아직 미정"이라고 말했다.

할리데이 시즌은 미국 추수감사절(11월 26일)과 크리스마스(12월25일)로 이어지는 쇼핑 시즌을 지칭하고 있어 11~12월 중 윈도7이 발표될 것으로 보인다.

최근까지 MS는 공식적으로 윈도7을 내년 1월 출시한다고 밝혀왔다. 하지만 MS가 지난 1일 윈도7의 최종 후보 버전인 RC(Release Candidate)를 공개함에 따라 윈도7의 완성도가 높은 것으로 알려져 올해 말 조기 출시설이 제기돼 왔다.

한편 미국 MS는 11일(현지시각) 캘리포니아 로스엔젤레스에서 개최된 테크에드(TechEd)2009 개발자 콘퍼런스에서 차기 OS인 `윈도7'과 `윈도 서버 2008 R2'를 2009년 할리데이 시즌에 판매한다고 발표했다.

출처: http://www.dt.co.kr/contents.html?article_no=2009051302010151739002
Posted by ancdesign
TAG MS, 윈도7
최신 정보/IT2009/05/13 08:09

티맥스데이' 행사서… 독자개발 오피스ㆍ브라우저도 공개

 

국내 독자기술로 개발한 PC용 운영체제(OS)로 기대를 모으고 있는 가칭 `티맥스윈도(Tmax Window)'가 오는 7월 첫 선을 보인다.
티맥스소프트(대표 문진일)는 오는 7 7일 코엑스에서 `티맥스데이'를 개최하고 이 자리에서 `티맥스윈도'를 공개, 시판에 들어간다고 10일 밝혔다. 티맥스데이는 업계 관계자 2000명 이상이 참석하는 대규모 행사로, 올해는 티맥스윈도 단일 제품으로 전체 행사를 구성할 예정이다.

티맥스윈도는 데이터베이스관리시스템(DBMS) `티베로'와 함께 티맥스소프트의 차세대 먹거리 제품으로 꼽힌다. 지난 3 6개월간 수백명의 연구인력을 투입, 개발해 왔으며 현재 한창 마무리 작업을 진행 중이다. 내달 1일부터 사내 직원을 대상으로 베타테스트가 시작되며 외부 파견 직원 등을 제외하면 PC 1000대 이상의 테스트가 될 전망이다.

당초 티맥스소프트는 티맥스윈도의 강점으로 기존 마이크로소프트 윈도용 소프트웨어(SW)와의 호환성, 강화된 보안, 저렴한 가격 등을 내세웠었다.

윈도용 SW와의 호환성과 관련해 회사측은 오피스를 비롯해 주요 SW에 대한 호환 기능이 순조롭게 구현되고 있다고 밝혔다. 허병근 티맥스소프트 상무는 "MS 윈도에서 실행되는 오피스 등은 무리 없이 실행된다" "티맥스가 독자 개발키로 한 오피스와 브라우저도 7월에 함께 공개될 것"이라고 말했다. 7월 행사에서는 참석자들이 티맥스윈도에서 MS 윈도용 게임 등을 직접 실행할 수 있는 체험 부스도 마련될 예정이다.

논란이 됐던 주변기기 연동에 대해서는 이미 알려진 표준 스펙과 해당 기업과의 기술협력을 통해 해법을 찾았다. 허 상무는 "현재 출시돼 있는 모든 주변기기를 다 지원할 수는 없지만 그래픽카드, 마우스, 프린터 등 주요 디바이스 연동은 큰 걸림돌이 아니었다"고 말했다. 그러나 구체적으로 어떤 하드웨어, SW 업체와 기술협력을 진행했는 지에 대해서는 밝히지 않았다.

티맥스윈도는 티맥스소프트의 첫 일반 소비자대상(B2C) 제품이라는 점에서 주목을 받고 있지만 중간 개발 과정과 시장전략 등 많은 부분이 여전히 베일에 싸여있다. 이에 대해 문진일 티맥스소프트 대표는 "미리 공개하는 것도 검토했지만 MS라는 거대 기업과의 경쟁을 고려했을 때 마케팅 전략 측면에서 리스크가 더 크다는 것이 내부 결론이었다" "7월 제품 발표와 함께 소비자 시장을 겨냥한 영업 전략 등도 함께 공개할 것"이라고 말했다.

티맥스윈도의 초기 시장은 공공부문이 될 전망이다. 문 대표는 "초기에는 공공부문을 중심으로 시작해 시장을 점차 확대해 나갈 것"이라며 "국내 OS시장의 10%만 가져와도 그만큼의 수입 대체 효과가 있다는 점에서 의미가 크다"라고 말했다. 지난달 22일 이명박 대통령과 IT 업계간의 간담회 자리에서도 문 대표는 OS의 중요성을 설명하고 티맥스윈도에 대해 언급했다. 당시 이 대통령은 "제품이 출시되면 한 카피 구입하겠다"고 약속했다고 문 대표는 전했다.

한편 티맥스소프트는 내달 베타테스트에 앞서 티맥스윈도 알리기에 시동을 걸었다. 각자 자신만의 도전 스토리를 응모하면 선정된 사람에게 총 1000만원 한도 내에서 신청한 자금을 후원하는 것으로, 티맥스윈도 전용 웹사이트(www.tmaxwindow.co.kr)를 이용한 첫 프로모션이다. 김대영 티맥스소프트 부장은 "티맥스윈도가 거대 기업에 맞서 독자 OS를 개발했던 것처럼 모든 사람들의 야심찬 도전을 응원하기 위한 것"이라며 "제품과 직접적으로 연계되지 않고 사회공헌 성격이 있다는 점에서도 의미 있는 이벤트가 될 것"이라고 말했다. 향후 업체 측은 이 사이트를 통해 티맥스윈도 관련 정보를 순차적으로 공개할 예정이다.


출처: 
http://www.dt.co.kr/contents.html?article_no=2009051102010560744001

Posted by ancdesign
누가복음 3:18-20

18. 또 그밖에 여러 가지로 권하여 백성에게 좋은 소식을 전하였으나
19. 분봉 왕 헤롯은 그의 동생의 아내 헤로디아의 일과 또 자기가 행한 모든 악한 일로 말미암아 요한에게 책망을 받고
20. 그 위에 한 가지 악을 더하여 요한을 옥에 가두니라


세례 요한은 백성들에게는 은혜의 복음을 가르쳤고(18절) 폭군 헤롯에게는 회개를 촉구하였다.(19절) 그는 십자가의 양면인 하나님의 은혜에 대한 설교와 하나님의 심판에 대한 설교를 동시에 하였다.  사실 동방에서 군주를 비난하는 것은 곧 목숨을 거는 행위였다. 그러나 그가 이렇게 담대할 수 있었던 것은 자기의 말이 인간의 말이 아닌 하나님의 말이라는 사실을 확신했기 때문이다. 그는 두려움 없이 상대를 불문하고 회개의 메시지를 전했다. 그는 왕에게 미움을 받아 옥살이를 하게 되었다.(20절) 오늘날 세례요한처럼 이 세상을 향하여 회개를 이처럼 강력하게 촉구하는 설교가가 있는가? 대부분 사람들은 "당신이 그곳에서 돌이키지 않으면 망합니다." 라는 메시지를 싫어한다. 대다수 성도들은 '그렇지 않아도 떳떳하지 못한 삶 때문에 송구스러운데 교회에 나와서까지 그런 소리를 들어야 하는가' 반문한다. 그런 설교를 듣지 않으려는 속성 때문에 그런 설교자도 사라진다. 우리는 우리 교회의 목회자들이 사람 눈치 말고 회개를 촉구하는 강력한 메시지를 하도록 격려하고 기도해야 한다.

출처: 안산제일교회 직장, 가정 모범 예배문
Posted by ancdesign
TAG 말씀, 예배


Userdump.exe 도구를 사용하면 예외가 발생하며 종료되거나 이상 응답하지 않는 프로세스의 사용자 덤프를 생성할 있습니다.

 

예외가 발생하며 종료되는 프로세스에 대한 덤프 파일(.dmp) 만들기

1.    프로세서의 Setup.exe 프로그램을 실행합니다.

참고

o    기본적으로 Setup.exe 프로그램은 C:\kktools\userdump8.0 폴더의 Userdump.exe 도구에 포함되어 있습니다.

o    Setup.exe 프로그램은 커널 모드 드라이버를 설치하고 Userdump.sys 파일을 설치하며 제어판에 Process Dump 아이콘을 만듭니다.

o    특별히 필요하지 않으면 Setup.exe 프로그램을 실행할 "dump on process termination" 기능을 해제하십시오.

2.    제어판에서 Process Dump 누릅니다.

3.    Exception Monitoring 탭에서 New 누르고 Monitor 목록에 적절한 프로그램 이름을 추가한 다음 OK 누릅니다. 예를 들어, Lsass.exe, Winlogon.exe, Mtx.exe, Dllhost.exe 등의 프로그램 이름을 추가합니다.

4.    Monitor 상자에서 3단계에서 추가한 프로그램 이름을 누르고 Rules 누릅니다.

5.    Custom Rules 선택하고 Custom rules 목록에서 3단계에서 추가한 프로그램에 대해 발생시킬 오류 유형을 선택한 다음 OK 누릅니다.

예를 들어, Access violation (c0000005) 오류 유형을 선택합니다.

모니터링되는 프로그램에서 액세스 위반 오류 메시지를 생성하면 Userdump.exe 도구가 시작되어 %SystemRoot% 폴더에 덤프 파일(.dmp) 만듭니다. .dmp 파일을 분석하면 Winlogon 액세스 위반 오류 메시지의 원인을 찾을 있습니다.

 

응답하지 않는 프로세스에 대한 덤프 파일 만들기

1.    프로세서의 Setup.exe 프로그램을 실행합니다.

참고

o    기본적으로 Setup.exe 프로그램은 C:\kktools\userdump8.0 폴더의 Userdump.exe 도구에 포함되어 있습니다.

o    Setup.exe 프로그램은 커널 모드 드라이버를 설치하고 Userdump.sys 파일을 설치하며 제어판에 Process Dump 아이콘을 만듭니다.

o    특별히 필요하지 않으면 Setup.exe 프로그램을 실행할 "dump on process termination" 기능을 해제하십시오.

2.    프로그램이 응답하지 않는 경우 명령 프롬프트에서 프로세서의 Userdump.exe 버전으로 이동한 다음 명령을 입력합니다.

userdump PID

참고 명령에서 PID 응답하지 않는 프로그램의 PID(프로세스 ID) 나타내는 자리 표시자입니다. 프로그램의 PID 구하려면 작업 관리자를 열고 프로세스 탭을 누릅니다.

userdump PID 명령을 실행하면 .dmp 파일이 생성됩니다. 덤프 파일을 사용하여 Windbg.exe 도구와 같은 프로그램에서 사후 디버깅을 수행할 있습니다.

설치 프로그램을 실행하여 Userdump.exe 도구를 설치하면 가지 추가 기능이 설정됩니다. Userdump.exe 도구의 이러한 추가 기능은 Userdump.exe 도구와 함께 제공되는 Userdocs.doc 파일에 자세히 설명되어 있습니다. 이러한 추가 기능은 다음과 같습니다.

  • 프로세스 자체 덤프. 특정 프로그램에서 예외 처리기 블록이나 최상위 수준의 처리되지 않은 예외 필터와 같은 특정 종류의 오류가 발생할 해당 프로그램에 대한 덤프 파일을 자동으로 만들도록 Userdump.exe 도구를 구성할 있습니다.
  • 핫키 프로세스 스냅샷. 단일 입력을 이미지 바이너리에 연결하여 Userdump.exe 도구에서 덤프 파일을 만들도록 트리거할 있습니다.
  • 예외 모니터링. Userdump.exe 도구는 프로그램에서 예외를 모니터링하고 특정 예외가 발생하면 덤프 파일을 자동으로 만들 있습니다. Process Dump 유틸리티를 사용하여 프로그램에 대해 예외가 발생할 덤프 파일을 자동으로 만들지 여부를 구성할 있습니다. Process Dump 유틸리티는 제어판에서 액세스할 있습니다.

 

참고 :

UserDump 8.0 해당 설명서를 다운로드하려면 다음 Microsoft 사이트를 방문하십시오.

http://www.microsoft.com/downloads/details.aspx?FamilyID=e23cd741-d222-48df-9cd8-28796f414256&DisplayLang=en (http://www.microsoft.com/downloads/details.aspx?FamilyID=e23cd741-d222-48df-9cd8-28796f414256&DisplayLang=en)

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

258833  (http://support.microsoft.com/kb/258833/ ) HOWTO: MTS 또는 COM+ 프로세스의 높은 CPU 사용률 문제 해결

Windows 최신 디버깅 도구(32비트 버전) 다운로드하려면 다음 Microsoft 사이트를 방문하십시오.

http://www.microsoft.com/whdc/devtools/ddk/default.mspx (http://www.microsoft.com/whdc/devtools/ddk/default.mspx) (영문)

Posted by ancdesign
누가복음 3:15-17

15. 백성들이 바라고 기다리므로 모든 사람들이 요한을 혹 그리스도신가 심중에 생각하니
16. 요한이 모든 사람이게 대답하여 이르되 나는 물로 너희에게 세례를 베풀거니와 나보다 능력이 많으신 이가 오시나니 나는 그의 신발끈을 풀기도 감당하지 못하겠노라 그는 성령과 불로 너희에게 세례를 베푸실 것이요
17. 손에 키를 들고 자기의 타작 마당을 정하게 하사 알곡은 모아 곳간에 들이고 쭉정이는 꺼지지 않는 불에 태우시리라

세례요한이 혹시 메시야가 아닌지 사람들의 의견이 분분했다.(15절) 유대 사회에서 메시야 도래에 대한 기대가 가장 커졌을 때 하나님 나라의 임박성을 강력히 선포하는 세례요한을 그렇게 본 것은 있을 수 있는 일이었다. 그러나 그는 자신은 조연에 불과하고 진짜 주연은 곧 등장할 것이라고 말하였다. 세례요한 자신은 곧 나타나실 그분의 신발끈을 매어주는 하인에 불과하다고 하였다.(16절) 자신은 고작 물로 세례를 베풀지만 그분은 성령과 불로 세례를 베푸실 것이며(16절) 그분은 장차 알곡은 곡간에, 쭉정이는 불에 태우실 심판주라고 소개하였다.(17절) 세례요한은 당시 사회 분위기에 편승해서 자기도 이름을 내고 명성을 챙길 수 있는 위치에 있었지만 그는 겸손히 예수님께 모든 길을 내어 드렸다. 어떤 사람은 예수님을 팔아서 혹은 교회에서 자신의 유용성을 부각하여 인기를 모으려는 사람이 있다. 자신도 예수님 옆에서 영광의 포즈를 취하여 명성과 인기와 부를 누리려고 한다. 예수님 곁에서 자기도 멋있는 포즈를 취하고 많은 사람들이 사진을 찍어주기를 바라는 유혹에서 벗어나야 한다.

출처: 안산제일교회 직장, 가정 예배모범문
Posted by ancdesign
TAG 말씀, 예배
누가복음 3:7-14

7. 요한이 세례 받으ㅏ러 나아오는 무리에게 이르되 독사의 자식들아 누가 너희에게 일러 장차 올 진노를 피하라 하더냐
8. 그러므로 회개에 합당한 열매를 맺고 속으로 아브라함이 우리 조상이라 말하지 말라 내가 너희에게 이르노니 하나님이 능히 이 돌들로도 아브라함의 자손이 되게 하시리라
9. 이미 도끼가 나무 뿌리에 놓였으니 좋은 열매 맺지 아니하는 나무마다 찍혀 불에 던져지리라
10. 무리가 물어 이르되 그러면 우리가 무엇을 하리이까
11. 대답하여 이르되 옷 두벌 있는 자는 옷 없는 자에게 나눠 줄 것이요 먹을 것이 있는 자도 그렇게 할 것이니라 하고
12. 세리들도 세례를 받고자 하여 와서 이르되 선생이여 우리는 무엇을 하리이까 하매
13. 이르되 부과된 것 이외에는 거두지 말라 하고
14. 군인들도 물어 이르되 우리는 무엇을 하리이까 하매 이르되 사람에게서 강탈하지 말며 거짓으로 고발하지 말고 받은 급료를 족한 줄로 알라 하니라


세례요한의 설교는 "독사의 자식들아"(7절) "장차 진노를 받을 자들아"(7절) "회개에 합당한 열매를 맺어라"(8절) "이ㅏ미 도끼가 나무 뿌리에 놓여있"(9절) 등 독설에 가까웠다. 그는 왜 이런 설교를 했을까? 유대인들은 자기 혈통에 대한 교만함때문에 심판 받지 않을 것이라 믿었다. 이런 자들에게 세례요한은 설교를 했다. 그는 복잡한 신학적인 설교 보다는 심판과 회개를 촉구하는 단순한 행동을 위한 설교를 했다. 한 사람의 가치에 대한 보편적인 척도는 사상이나 신념이 아니라 행함이다. 얼마나 고상한 신념과 사상을 가졌지가 사람을 훌륭하게 만드는 것이 아니라 그 사람의 인격이 그것을 좌우한다. 우리는 믿음으로 구원받는다는 기독교의 복음의 진리를 오용하여 행위를 무시하는 크리스챤이 되어서는 안된다. 왜냐하면 행위에 대한 심판이 분명히 있기 때문이다.(계20:12) 우리는 할 수 있는 모든 방법을 동원해서, 할 수 있는 모든 사람에게, 할 수 있는 모든 장소에서, 할 수 있는 모든 열심을 다 해서 선을 행해야 한다.

출처: 안산제일교회 직장, 가정 예배 모범문
Posted by ancdesign
TAG 말씀, 예배
누가복음 1:57-66

57. 엘리사벳이 해산할 기한이 차서 아들을 낳으니
58. 이웃과 친족이 주께서 그를 크게 긍휼히 여기심을 듣고 함께 즐거워하더라
59. 팔 일이 되매 아이를 할례하러 와서 그 아버지의 이름을 따라 사가랴라 하고자 하더니
60. 그 어머니가 대답하여 이르되 아니라 요한이라 할 것이라 하매
61. 그들이 이르되 네 친족 중에 이 이름으로 이름한 이가 없다 하고
62. 그의 아버지께 몸짓하여 무엇으로 이름을 지으려 하는가 물으니
63. 그가 서판을 달라 하여 그 이름을 요한이라 쓰매 다 놀랍게 여기더라
64. 이에 그 입이 곧 열리고 혀가 풀리며 말을 하여 하나님을 찬송하니
65. 그 근처에 사는 자가 다 두려워하고 이 모든 말이 온 유대 산골에 두루 퍼지매
66. 듣는 사람이 다 이 말을 마음에 두며 이르되 이 아이가 장차 어찌 될까 하니 이는 주의 손이 그와 함께 하심이러라 

엘리사벨이 아들을 낳고 이름을 요한이라고 지었다.(63절) 이름의 뜻은 '하나님의 선물'이다. 임신이 불가능했던 상황에서 하나님께서 은혜로 주셨기에 '하나님의 선물'이라고 지었다. 그 이름은 그 부모의 신앙고백이다. 구약의 위인 사무엘도 마찬가지이다. 불임 상태였던 그의 어머니 한나가 하나님께 열심히 간구한 덕에 낳았다고 해서 '하나님께 간구한 자' 사무엘이라고 지었다. 크리스챤 부모들도 자식의 이름을 자신들의 신앙고백으로 짓는 경우가 많다. 자식이 착하고 의롭고 위대하고 유능하게 되기를 바라면서 이름을 짓는다. 특히 예수님을 닮고 하나님의 은총을 많이 받기 바라면서 예수님 '예'자와 하나님 '하'자를 그 이름에 넣는 경우가 많다. 어떤 경우는 성서의 위인의 이름을 자식의 이름으로 그대로 사용하기도 한다. 그런데 부모가 그 이름만 열심히 부른다고 자식이 그런 위대한 사람이 될 수 있을까? 중요한 것은 부모가 자식의 이름을 부를 때 마다 그 이름에 담긴 뜻과 의도를 자기 자신에게도 끊임없이 설교하고 가르쳐야 한다. 그렇게해서 부모가 변화되면 자식도 그렇게 따라간다.

출처: 안산제일교회 직장.가정 예배 모범문
Posted by ancdesign
TAG 말씀, 예배

누가복음 1:1-4절
1. 우리 중에 이루어진 사실에 대하여
2. 처음부터 목격자와 말씀의 일꾼 된 자들이 전하여 준 그대로 내력을 저술하려고 붓을 든 사람이 많은지라
3. 그 모든 일을 근원부터 자세히 미루어 살핀 나도 데오빌로 각하에게 차례대로 써 보내는 것이 좋은 줄 알았노니
4. 이는 각하가 알고 있는 바를 더 확실하게 하려 함이로라

예수님이 승천하신 후 그에 관한 내용을 후대 사람들에게 알리기 위해 붓을 든 사람들이 많았다. 그들은 예수의 여러 목격자들의 진술을 토대로 그의 생애를 기록하였다.(2절) 누가도 자기 경험과 상상이 아닌 살아 생전에 예수님을 경험한 목격자들의 자료를 토대로 그의 생애를 기록하였다는 것을 암시하였다. 그리고 누가는 그 기록 목적을 데오빌로의 신앙 교육을 위해서였 다고 밝혔다.(3절) 여기서 데오빌로가 실제 인물인지 아난지는 알 수는 없지만 이것은 중요한 일이 아니다. 누가는 기독교 진리에 대해서 배운 적이 있는 사람들에게 그 배운 바를 더 확실하게 할 목적으로 이 복음서를 기록했다.(4절) 여기서 '배운 바'라는 말은 오늘 날 교리 문답의 근원어이다. 나는 기독교 진리에 대해서 얼마나 많이 알고 있는가? 내가 가진 예수님에 관한 지식은 과연 완전한가? 내가 더 깊은 기독교 진리를 터득하고 더 깊은 신앙을 가지기를 원하고 있는가? 그렇다면 반드시 누가복음을 통독하고 공부해야 한다. 그런 사람은 다른 복음서도 좋지만 누가복음의 기록의도를 볼 때 반드시 이 복음서를 읽어야 한다.

출처: 안산제일교회 직장.가정 예배 모범문
Posted by ancdesign
TAG 말씀, 예배

사도신경 / 찬송:314장 / 요한복음6:66-71

요한복음 6장 66-71절
66. 그 때부터 그의 제자 중에서 많은 사람이 떠나가고 다시 그와 함께 다니지 아니하더라
67. 예수께서 열두 제자에게 이르시되 너희도 가려느냐
68. 시몬 베드로가 대답하되 주여 영생의 말씀이 주께 있사오니 우리가 누구에게로 가오리이까
69. 우리가 주는 하나님의 거룩하신 자이신 줄 믿고 알았사옵나이다
70. 예수께서 대답하시되 내가 너희 열둘을 택하지 아니하였느냐 그러나 너희 중의 한 사람은 마귀니라 하시니
71. 이 말씀은 가룟 시몬의 아들 유다를 가리키심이라 그는 열둘 중의 하나로 예수를 팔 자러라

열렬히 예수님을 추종하였던 무리들이 어느 순간부터 그를 떠나가기 시작했다.(66절) 이에 예수님께서 열두 제자에게 "너희들도 나를 떠나겠느냐?"(67절)고 묻자 베드로는 예수님의 영생의 말씀이 있기에 절대로 그럴 수 없다고 대답했다.(68절) 베드로는 예수님의 말씀을 조금은 이해했던 것 같다. 그러나 예수님이 베푼 떡 맛을 본 자들은 예수님 자신이 '참 생명의 떡' 이라는 말씀을 이해 못했다. 그리고 그들은 예수님에게서 더 이상 얻을 것이 없음을 직감하였다. 그들은 만사가 잘되어갈 때의 추종자들이었다. 그들은 예수님이 매력적일 때만 따르려 하였다. 사실 예수님만큼 우리에게 많은 것을 줄 수 있는 분이 없다. 그러나 예수님만큼 우리에게 많은 것을 요구하는 분 또한 없다. 서로 사랑하고, 서로 용납하고, 하나님 나라를 위해 매일 매일 충성하라고 요구하신다. 예수님을 따르고자 하는 사람은 언제나 자지가 짊어 저야 할 십자가가 있다는 사실을 상기해야 한다. 이 십자가를 어려워하는 자들은 항상 예수님 곁에 남아 있을 수 없다.

출처: 안산제일교회 직장.가정 모범 예배문
Posted by ancdesign
TAG 말씀, 예배

// 선언
    struct Version
    {
        Version();
        DWORD major;
        DWORD minor;
        bool operator <  (const Version& ver) const;
        bool operator == (const Version& ver) const;
        bool operator =  (const tstring& ver);
        bool empty() const;
        tstring str() const;
    };
    bool ConvertVersion(__in LPCTSTR ver, __out Version& outVer);
    bool ConvertVersion(__in Version ver, __out tstring& outVer);


// 구현
    Version::Version() :major(0),minor(0)
    {
    }

    bool Version::operator < (const Version& ver) const
    {
        if(this->major == ver.major)
            return this->minor < ver.minor;
        return this->major < ver.major;
    }

    bool Version::operator == (const Version& ver) const
    {
        return this->minor == ver.minor && this->major == ver.major;
    }

    bool Version::operator = (const tstring& ver)
    {
        return ConvertVersion(ver.c_str(), *this);
    }

    bool Version::empty() const
    {
        return this->major == 0 && this->minor == 0;
    }

    tstring Version::str() const
    {
        tstring out;
        ConvertVersion(*this, out);
        return out;
    }

    const unsigned int VER_MOD (65536);

    bool ConvertVersion(__in LPCTSTR ver, __out Version& outVer)
    {
        if(!ver) { return false; }
        tstring tmpVer(ver);
        tmpVer = StringUtil::Replace(tmpVer, _T(","), _T("."));
        tmpVer = StringUtil::Replace(tmpVer, _T(" "), _T(""));

        std::vector<tstring> verlist;
        StringUtil::ParsingDelimiter(tmpVer, verlist, _T("."));
        for(size_t i(0); i<verlist.size(); i++) {
            switch(i)
            {
            case 0: outVer.major = outVer.major + _ttoi(verlist[i].c_str()) * VER_MOD;  break;
            case 1: outVer.major = outVer.major + _ttoi(verlist[i].c_str());            break;
            case 2: outVer.minor = outVer.minor + _ttoi(verlist[i].c_str()) * VER_MOD;  break;
            case 3: outVer.minor = outVer.minor + _ttoi(verlist[i].c_str());            break;
            default: return false;
            }
        }
        return true;
    }

    bool ConvertVersion(__in Version ver, __out tstring& outVer)
    {
        otstringstream ss;
        ss << ver.major / VER_MOD << _T(".") << ver.major % VER_MOD << _T(".")
           << ver.minor / VER_MOD << _T(".") << ver.minor % VER_MOD;
        outVer = ss.str();
        return true;
    }



tmpVer = StringUtil::Replace(tmpVer, _T(","), _T(".")); 에서
StringUtil::Replace  함수는 tempVer 문자열에서 _T(",")을 _T(".")으로 교체한 후 리턴값으로 tempVer에 다시 넣는 함수이다.

StringUtil::ParsingDelimiter(tmpVer, verlist, _T(".")); 에서
StringUtil::ParsingDelimiter 함수는 tempVer문자열에서 _T(".") 문자를 기준으로 verlist 벡터에 하나씩 넣어서 가져오는 함수이다.

Posted by ancdesign