'전체 글'에 해당되는 글 171건

  1. 2007.08.10 [TinyXML] 소개 - 작고 가벼운 XML 라이브러리
  2. 2007.08.09 제목표시줄 숨기기
  3. 2007.08.08 경청
  4. 2007.08.06 [강좌] WTL로 프로그래밍하기#1 - WTL소개
  5. 2007.07.31 [팁] SplitterWnd 에서 Pane을 Swap 시키기 1

[TinyXML] 소개 - 작고 가벼운 XML 라이브러리

개발 2007. 8. 10. 14:22

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
TinyXML은 간단하고 작은 C++ XML 파서 입니다.
사용하기가 편리하고 다른 프로그램으로 이식하기도 수월한 편입니다.


온라인 도움말 : http://www.grinninglizard.com/tinyxmldocs/index.html
소스를 받는곳 : http://sourceforge.net/projects/tinyxml/


설치하려면.. 일단 소스 받는곳에서 소스를 환경에 맞게 받는다.
윈도우 버전으로 받으면 VC++6.0 작업화일과 VS.NET 용 솔루션 파일이 포함되어 있다.


사용하는 방법은 2가지로 나눌수 있다.  ( 그리고 각각 STL을 사용하는 버전과 아닌 버전으로 되어 있다. )

1. 해당 소스를 컴파일 하여 생성되는 Tinyxml.lib와 헤더파일을 이용하는 방법
   - 이방법은 제공되는 솔루션 파일( tinyxml.sln) 을 열어서 빌드만 하면 된다.
   - 사용하는 프로젝트가 멀티 쓰레드이면 런타임 라이브러리를 멀티 쓰레드로 변경해야 한다.
      (기본 설정은 싱글 쓰레드로 되어 있다.
   - tinyXml.lib 는 스태틱 라이브러리로 컴파일시에 exe에 포함되므로 따로 배포를 않해도 된다.

2. 소스를 직접 포함시켜서 사용하는 방법.
   - 필요한 파일을 프로젝트에 파일 추가로 등록한다.
      (tinystr.h(cpp), tinyxml.h(cpp), tinyxmlerror.cpp, tinyxmlparse.cpp 총 6개다 )
   - 컴파일을 하려고 하면 precompile header 관련하여 에러가 난다.
   - 프로젝트 설정에서 cpp의 (3개 파일) precompile header 사용을 빼버린면 된다.
  
사용자 삽입 이미지

어떻게 보면 거의 같은 방법이다. ㅎㅎ
개인적으로 2번째 방법을 선호한다. 개발중에 cpp 소스를 가끔 보게 되므로..
그럼 다음 글에서는 간단한 사용법들을 알아보자. 


:

제목표시줄 숨기기

개발 2007. 8. 9. 10:00

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

간단한 코드이지만 가끔 생각이 안날때가 있다.. ㅋㅋ

원리는 간단하다. 윈도우의 확장스타일(WS_EX_) 을 얻어와서
속성만 변경해 주면 된다.

아래는 예제 코드이다.

HideApplicationTitleBar()
{
 DWORD dwStyle = GetWindowLong(m_hWnd, GWL_EXSTYLE);
 dwStyle &= ~WS_EX_APPWINDOW;
 dwStyle |= WS_EX_TOOLWINDOW;
 SetWindowLong(m_hWnd, GWL_EXSTYLE, dwStyle);
}


 



:

경청

영화&책 2007. 8. 8. 16:14

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
사용자 삽입 이미지

경청


<저자>

<소개>
저자 : 조신영 & 박현찬
출판사 : ??
 ‘듣는 사람’보다 ‘말하는’ 사람이 더 많은 이 시대와 우리 사회에 가만히 상대에게 귀 기울여 듣는 것이 얼마나 위대한 소통의 지혜인지 일깨워주는 자기계발서. 저자는 보통의 대한민국 40대 전후의 직장남성을 주인공으로 내세워 우리가 일상적으로 겪는 단절된 소통의 답답함을 현실적으로 접근시킨다. 직장과 가정이라는 삶의 터전에서 점점 더 주변인물로 소외되어가는 남성들이 늘어가고 있는 요즘, 이 땅에서 직장인으로, 남편으로, 아버지로 더불어 잘 살아가기 위해 꼭 한 번쯤은 귀 기울여야 할 삶의 자세를 전하는 책이다.

<줄거리>
 악기 제조 회사에서 일하는 이청은 아내와 별거중이고 아들은 발달장애의 증상이 있다. 평소 회사에서 듣기 실은 말은 '알았다' 라고 말하고 넘기며 타인의 말을 자기 편한 대로만 받아 들이는 사림이다. 회사에서 구조조정이 되어서 대리점 개설권을 받고 명예퇴직을 하게 된다. 대리점 오픈날 갑자기 쓰러진 이청은 뇌줄기암에 걸린 것을 알게된다. 갑자기 찾아온 불행들에 좌절하지만, 마지막으로 아들에게 무언가 남겨주고 싶다는 생각에 예전에 근무하던 회사의 강원도 악기 공장으로 가서 바이올린 제작을 배우게 된다.
제작 3팀에 무급사원으로 제조를 배우던 이청은 치악산의 나무노인과 독순술을 가리쳐 주는 구박사를 통해서 듣는 것의 소중함을 배우게되고, 문제가 많았던 3팀의 분위기를 바꾸게 된다.  

<느낌>
읽기에 편한 책이었다. 간간이 있는 삽화와 큼직한 글씨..
이청득심(以聽得心) : 귀기울여 경청하는 일은 사람의 마음을 얻는 최고의 지혜이다.
평소에 듣기를 얼마나 잘 할까? 나를 되돌아보면 말하기를 즐거워 하는 편인것 같다. 상대방이 하는 말중 정말 듣기 싫은 말도 있는데, 이런 말도 경청을 할 수 있을까? 누구나 알고있는 경청의 중요함을 다시 한번 일깨워 주는 책이지만.. 상대가 재미없는 말을 하거나, 독선적인 모습으로 하는 말도 경청을 해야 할까? 물론 경청을 하면 득이되겠지만.. 어려운 일임에는 틀림없다.

나무노인처럼 자연의 소리를 들어 볼 수 있을까? ㅎㅎ
이청은 죽음을 앞두고 있어서 듣는 것에대해서 더 몸으로 느낄수 있었던 것은 아닐까 생각해 본다.




:

[강좌] WTL로 프로그래밍하기#1 - WTL소개

개발 2007. 8. 6. 21:43

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

WTL로 프로그래밍하기


저자 : hanburn
날짜 : 2007.08.06
환경 : WTL7.5, VS-2003
 

MFC로 프로그래밍을 해오다가 WTL을 접해보게 되었다. 예전부터 듣기는 했었는데, 직접 사용해 보니 가볍고 좋은 라이브러리인 것 같다. WTL의 장점이 뭐가 있을까? 아직 많이 써보지는 않아서 뭐라 딱히 말 할 수 없지만 일단 느껴본 것은 실행파일이 작다는 것이다. 간단한 Dialog 기반의 프로그램을 만들어서 컴파일하면 32KB 밖에 안된다. 물론 MFC를 사용 안하고 Win32로만 만들면 더 작아지겠지만, 프로그램 제작에 들어가는 편리함에 비한다면 충분히 감수할 만한 것 같다.

WTL Window Template Library으로 사용을 원만하게 하려면 template에 대해서 충분히 익숙해 저야 한다. 아직 template에 대해서 잘 모르더라도 너무 걱정하기 마시길.. 차차 익숙해 지겠지요..

 

WTL에 대한 ms 싸이트의 간단한 설명을 보면 다음과 같습니다.

 

Windows Template Library (WTL) is a library for developing Windows® applications and UI components. It extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more. This version provides support for Windows Vista and Visual Studio 2005, and also support for the Windows CE platform.

 

 

윈도우어플리케이션과 UI 컴포넌트를 개발하기 위한 라이브러리로, ATL을 확장하고 컨트롤, 다이얼로그, 프레임 윈도우 GDI 객체 등등을 제공한다고 하는 군요.. 한마디로 UI를 처리할 때 사용하는 라이브러리라는 것입니다.

 

사용하려면 일단 설치를 해야 되는데, 아래의 URL에서 다운받을 수 있다.

 

WTL 7.5 : http://www.microsoft.com/downloads/details.aspx?familyid=48CB01D7-112E-46C2-BB6E-5BB2FE20E626&displaylang=en

WTL 8.0 : http://www.microsoft.com/downloads/details.aspx?familyid=e5ba5ba4-6e6b-462a-b24c-61115e846f0c&displaylang=en&tm

 

(현재 최신 버전은 8.0이 나왔는데, 지금의 강좌에서는 7.5 버전을 기준으로 하겠습니다. )

 

설치하는 과정은 다운을 받아서 압축을 풀면, AppWiz및에 VS버전에 맞는 자바스크립트 셋업 파일을 클릭해주면 된다. 그리고 아래처럼 include 폴더를 추가해주면 끝이다.

 

사용자 삽입 이미지


그리고 앞으로 시작할 강좌는 www.codeproject.com/wtl/ 의 wtl4mfc 강좌를 참고로 하여 진행이 되는 강좌입니다. 사용하는 버전은 WTL 7.5를 사용하고 VS-2003에서 코딩이 이루어 집니다.


:

[팁] SplitterWnd 에서 Pane을 Swap 시키기

개발 2007. 7. 31. 10:41

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
WTL 7.5 버전을 사용중인데.. SplitterWnd에 Pane 을 서로 교환(Swap)할 수 있는 기능이 없다.
SwapPane() 이라는 함수가 있으면 좋을텐데..

그래서 SwapPane의 기능을 아래처럼 구현 해보았다.

if( m_wndSplitter.GetSplitterPane(SPLIT_PANE_TOP) == m_wndHeadline )
{
m_wndSplitter.SetSplitterPane(SPLIT_PANE_TOP, m_wndSection);
m_wndSplitter.SetSplitterPane(SPLIT_PANE_BOTTOM, m_wndHeadline); }
else
{
m_wndSplitter.SetSplitterPane(SPLIT_PANE_TOP, m_wndHeadline);
m_wndSplitter.SetSplitterPane(SPLIT_PANE_BOTTOM, m_wndSection);
}

그러나 atlsplit.h의 소스에 아래처럼 되어있어서 ATLASSERT가 발생하였다..

bool SetSplitterPane(int nPane, HWND hWnd, bool bUpdate = true)
{
	ATLASSERT(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT);

	if(nPane != SPLIT_PANE_LEFT && nPane != SPLIT_PANE_RIGHT)
		return false;
	m_hWndPane[nPane] = hWnd;
	ATLASSERT(m_hWndPane[SPLIT_PANE_LEFT] == NULL || 
m_hWndPane[SPLIT_PANE_RIGHT] == NULL ||
m_hWndPane[SPLIT_PANE_LEFT] != m_hWndPane[SPLIT_PANE_RIGHT]); if(bUpdate) UpdateSplitterLayout(); return true; }
음.. 그래서 그냥 아래처럼 처리하였다..

if( m_wndSplitter.GetSplitterPane(SPLIT_PANE_TOP) == m_wndHeadline )
{
	m_wndSplitter.m_hWndPane[SPLIT_PANE_TOP] = m_wndSection;
	m_wndSplitter.m_hWndPane[SPLIT_PANE_BOTTOM] = m_wndHeadline;
	m_wndSplitter.UpdateSplitterLayout();
}
else
{
	m_wndSplitter.m_hWndPane[SPLIT_PANE_TOP] = m_wndHeadline;
	m_wndSplitter.m_hWndPane[SPLIT_PANE_BOTTOM] = m_wndSection;
	m_wndSplitter.UpdateSplitterLayout();
}

좀 깔끔하지는 않지만.. 일단 해결..


: