<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>techmania</title>
	<link>http://techmania.egloos.com</link>
	<description>techmania</description>
	<language>ko</language>
	<pubDate>Fri, 12 Sep 2008 13:12:57 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>techmania</title>
		<url>http://pds6.egloos.com/logo/200712/21/02/e0064602.jpg</url>
		<link>http://techmania.egloos.com</link>
		<width>80</width>
		<height>80</height>
		<description>techmania</description>
	</image>
  	<item>
		<title><![CDATA[ Bootcamp XP에서 쉽게 맥북 트랙패드 Enable/Disable 하기 ]]> </title>
		<link>http://techmania.egloos.com/2019496</link>
		<guid>http://techmania.egloos.com/2019496</guid>
		<description>
			<![CDATA[ 
  <p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">인터넷에서 검색하다 우연히 트랙패드를 사용 가능하게 했다, 안되게 했다하는 방법을 찾았는데, 외부 마우스 접속 여부에 따라 자동으로 Enable/Disable 해주지는 못하지만, 단축키를 통해서 그것이 가능하므로, 그런대로 쓸만한 것 같아 그 정보를 올린다.</span><br><br><strong><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><span style="FONT-SIZE: 130%">1. 설치</span></span></strong><br><br><a href="http://pds12.egloos.com/pds/200809/12/02/Trackpad.zip">Trackpad.zip</a>&nbsp;&lt;-- 클릭<br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>첨부한 파일의 압축을 풀면 다음 두 디렉토리가 보인다.</span><br><span style="FONT-SIZE: 100%; COLOR: #009900; FONT-FAMILY: '돋움','Dotum'"><strong><br>i386<br>ia64<br><br></strong></span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">나는 32bit XP Pro.를 사용하므로 i386안의 파일들을 사용하였다. 64비트 OS를 쓰면 ia64를 쓰면 될 것 같다.<br></span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>Vista 지원 여부는 잘 모르겠다. 내 기억에 아래에서 언급할 devcon.exe는 MS 싸이트에서 직접 다운로드 한 것 같다. MS 싸이트에서 devcon으로 검색해 보면 관련 정보를 확인할 수 있을 것 같다.</span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>i386 디렉토리에는 다음의 세 파일들이 있다.</span><br><span style="FONT-SIZE: 100%; COLOR: #009900; FONT-FAMILY: '돋움','Dotum'"><strong><br>devcon.exe<br>disableTrackpad.bat<br>enableTrackpad.bat</strong></span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br><strong>devcon.exe</strong>는 장치를 설정하는 프로그램이고, <strong>disableTrackpad.bat</strong>를 실행시키면 트랙패드를 사용하지 않도록 설정하게 되고, <strong>enableTrackpad.bat</strong>를 실행시키면 트랙패드를 사용할 수 있도록 해준다. </span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">그런데, 두 bat 파일 안의 내용을 자기 컴퓨터에 맞도록 좀 고쳐야 할 것으로 생각된다.<br></span></p><div style="TEXT-ALIGN: center"><strong><span style="FONT-FAMILY: 돋움">disableTrackpad.bat 실행 화면</span></strong></div><div style="TEXT-ALIGN: center"></div><p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds11.egloos.com/pds/200809/12/02/e0064602_48ca676c76af3.gif" width="500" height="327.35426009" onclick="Control.Modal.openDialog(this, event, 'http://pds11.egloos.com/pds/200809/12/02/e0064602_48ca676c76af3.gif');" /></div>&nbsp;</p><div style="TEXT-ALIGN: center"><strong><span style="FONT-FAMILY: 돋움">enableTrackpad.bat 실행 화면</span></strong><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds12.egloos.com/pds/200809/12/02/e0064602_48ca6817767a9.gif" width="500" height="327.35426009" onclick="Control.Modal.openDialog(this, event, 'http://pds12.egloos.com/pds/200809/12/02/e0064602_48ca6817767a9.gif');" /></div><div style="TEXT-ALIGN: left"><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">편집기로 bat 파일들을 열어보면 다음과 같은 줄이 보인다.</span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><strong><br>devcon disable(또는 enable) "<span style="COLOR: #009900">USB\VID_05AC&amp;PID_021A&amp;MI_01</span>"</strong></span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>여기서 disable이나 enable 뒤에 나오는 "USB\..." 부분이 컴퓨터마다 다를 수 있을 것 같다. 인터넷에서 다운로드한 bat 파일들과 내 맥북의 값이 달라서 일부 수정을 했던 것 같다(VID_, PID_, MI_ 뒤의 값들만 바꾸면 되는 것으로 기억한다).</span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>그것을 확인하는 방법은 다음과 같다.</span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>바탕 화면 -&gt; 내 컴퓨터 -&gt; 마우스 오른쪽 버튼 클릭 -&gt; 속성 선택 -&gt; 하드웨어 탭 -&gt; 장치 관리자 버튼 클릭 -&gt; 휴먼 인터페이스 장치 펼치기 -&gt; Apple Trackpad -&gt; 마우스 오른쪽 버튼 클릭 -&gt; 속성 선택 -&gt; 자세히 탭 을 열어 장치 인스턴스 Id나 하드웨어 Id를 확인하고 위의 bat 파일들을 적절히 수정하면 된다.</span><br><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds10.egloos.com/pds/200809/12/02/e0064602_48ca68c4463e0.gif" width="469" height="423" onclick="Control.Modal.openDialog(this, event, 'http://pds10.egloos.com/pds/200809/12/02/e0064602_48ca68c4463e0.gif');" /></div><br><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><strong><span style="FONT-SIZE: 130%">2. 바로 가기 키(단축키) 설정</span></strong></span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>위의 bat 파일의 바로 가기를 바탕 화면에 만들게 되면, 바로 가기 아이콘의 속성을 통해서 바로 가기 키(단축키)를 설정할 수 있다.</span><br><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"><br>bat 파일들을 일일이 찾아가며 실행하는 수고를 덜 수 있다.<br></span></div></div><br/><br/>tag : <a href="/tag/부트캠프" rel="tag">부트캠프</a>,&nbsp;<a href="/tag/bootcamp" rel="tag">bootcamp</a>,&nbsp;<a href="/tag/트랙패드" rel="tag">트랙패드</a>,&nbsp;<a href="/tag/trackpad" rel="tag">trackpad</a>			 ]]> 
		</description>
		<category>맥</category>
		<category>부트캠프</category>
		<category>bootcamp</category>
		<category>트랙패드</category>
		<category>trackpad</category>

		<comments>http://techmania.egloos.com/2019496#comments</comments>
		<pubDate>Fri, 12 Sep 2008 12:39:23 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 동기화 프로그램 SyncBack ]]> </title>
		<link>http://techmania.egloos.com/1935467</link>
		<guid>http://techmania.egloos.com/1935467</guid>
		<description>
			<![CDATA[ 
  간편하게 쓰기에 좋은 것 같다.<br><a href="http://pds6.egloos.com/pds/200808/09/02/SyncBack_Setup.zip">SyncBack_Setup.zip</a><br/><br/>tag : <a href="/tag/동기화" rel="tag">동기화</a>,&nbsp;<a href="/tag/SyncBack" rel="tag">SyncBack</a>			 ]]> 
		</description>
		<category>컴퓨터</category>
		<category>동기화</category>
		<category>SyncBack</category>

		<comments>http://techmania.egloos.com/1935467#comments</comments>
		<pubDate>Sat, 09 Aug 2008 06:40:16 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ boost 설치 방법 ]]> </title>
		<link>http://techmania.egloos.com/1865002</link>
		<guid>http://techmania.egloos.com/1865002</guid>
		<description>
			<![CDATA[ 
  <p>boost 설치 방법</p><p><br>1. 인스톨러 다운로드<br>설치 방법에는 소스 코드를 이용한 빌드 방법과 인스톨러를 이용한 설치 방법이 있는데, 윈도우즈 환경에서는 인스톨러를 이용하는 것이 편하다고 한다.</p><p>다운로드 파일 주소: <a href="http://www.boost-consulting.com/download/windows">http://www.boost-consulting.com/download/windows</a></p><p><br>2. 실행 및 설치<br>인스톨러를 실행한 후, "Select Default Variants" 단계에서 컴파일러 종류와 설치할 라이브러리 종류(Variants)를 선택한다.</p><p>라이브러리는 몽땅 선택하는 것이 속 편할 듯 싶다.</p><p><br>3. 계속 진행하면 알아서 다운로드하고 설치한다.</p><p><br>4. Visual Studio에서 include와 library 디렉토리를 추가해주고 난 후, boost 설명서에 나온 샘플 코드를 컴파일해서 확인해 본다.</p><p>디폴트로 정적(static) 링크를 하게 된다고 한다. 따라서, DLL 형태의 boost 라이브러리를 사용하려면 매크로 정의를 해줘야 한단다. BOOST_라이브러리이름_DYN_LINK 형태의 매크로를 정의하면 된다.</p><p>만약, regex 라이브러리를 사용한다면, BOOST_REGEX_DYN_LINK 라는 매크로를 정의한 후 컴파일 하면 된단다.</p><p>참고 URL: <a href="http://docs.huihoo.com/boost/1-33-1/more/getting_started.html">http://docs.huihoo.com/boost/1-33-1/more/getting_started.html</a></p><p><br>5. 컴파일<br>[샘플 코드: example.cpp]</p><p>#include &lt;boost/regex.hpp&gt;<br>#include &lt;iostream&gt;<br>#include &lt;string&gt;</p><p>int main()<br>{<br>&nbsp;&nbsp;&nbsp; std::string line;<br>&nbsp;&nbsp;&nbsp; boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );</p><p>&nbsp;&nbsp;&nbsp; while (std::cin)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::getline(std::cin, line);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boost::smatch matches;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (boost::regex_match(line, matches, pat))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; matches[2] &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp; }<br>}</p><p><br>예 1) 명령행에서 정적 링크를 하는 경우(컴파일러: VC 7.1(VS2003) 일 때)</p><p>c:\Temp&gt;cl /EHsc /DBOOST_LIB_DIAGNOSTIC /MD /I"c:\program files\boost\boost_1_35_0" example.cpp /link /LIBPATH:"c:\program files\boost\boost_1_35_0\lib"<br>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86<br>Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.</p><p>example.cpp<br>Linking to lib file: libboost_regex-vc71-mt-1_35.lib<br>Microsoft (R) Incremental Linker Version 7.10.6030<br>Copyright (C) Microsoft Corporation.&nbsp; All rights reserved.</p><p>/out:example.exe<br>"/LIBPATH:C:\Program Files\boost\boost_1_35_0\lib"<br>example.obj</p><p><br>생성 파일 크기: 94,208</p><p><br>예 2) 명령행에서 동적 링크를 하는 경우(컴파일러: VC 7.1(VS2003) 일 때), /MD 옵션을 꼭 써야 한다.<br>c:\Temp&gt;cl /EHsc /DBOOST_REGEX_DYN_LINK /DBOOST_LIB_DIAGNOSTIC /MD /I"c:\program files\boost\boost_1_35_0" example.cpp /link /LIBPATH:"c:\program files\boost\boost_1_35_0\lib"<br>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86<br>Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.</p><p>example.cpp<br>Linking to lib file: boost_regex-vc71-mt-1_35.lib<br>Microsoft (R) Incremental Linker Version 7.10.6030<br>Copyright (C) Microsoft Corporation.&nbsp; All rights reserved.</p><p>/out:example.exe<br>"/LIBPATH:C:\Program Files\boost\boost_1_35_0\lib"<br>example.obj</p><p><br>생성 파일 크기: 12,800</p><br/><br/>tag : <a href="/tag/boost" rel="tag">boost</a>,&nbsp;<a href="/tag/설치" rel="tag">설치</a>,&nbsp;<a href="/tag/방법" rel="tag">방법</a>			 ]]> 
		</description>
		<category>C, C++</category>
		<category>boost</category>
		<category>설치</category>
		<category>방법</category>

		<comments>http://techmania.egloos.com/1865002#comments</comments>
		<pubDate>Sun, 13 Jul 2008 13:46:00 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 마시멜로 이야기를 읽고 ]]> </title>
		<link>http://techmania.egloos.com/1863641</link>
		<guid>http://techmania.egloos.com/1863641</guid>
		<description>
			<![CDATA[ 
  <p>성공 관련 책에 웬지 모를 거부감을 느끼고 있던 차에 우연히 책이 생겨서 그 책을 보았다.<br><br>그 내용이란 이미 사람들이 알고 있는 내용이고, 이미 현명한 사람들은 실천하고 있는 것들이다.<br><br>옛 조상들의 교훈, 속담 등에 있는 덕목들을 말하고 있다.<br><br>고진감래<br><br>목표를 정하라.<br><br>참고 견뎌라.<br><br>길게 보라.<br><br>잘못된 습관은 과감히 버려라.<br><br>작은 욕심, 작은 유혹을 이겨내라.<br><br>어렸을 때부터 책이나 이야기들을 통해서 들은 내용들이고, 알고 있는 내용들이다.<br><br>하지만, 실천하기는 쉽지 않고, 생활 속에서 자신을 객관적으로 보며 삶을 바로 잡는 것은 참 어렵다.<br><br>문제는 실천이다.<br><br>작은 것부터 실천해 나가는 것이 중요하다.<br><br>목표를 세우고, 그 목표를 이루기 위해 도움이 되는 것은 택해서 실천하고, 도움이 되지 않는 것은 거부하는 실천적 노력이 필요하다는 것이&nbsp;그 책이 말하고자 하는 것이라고 생각한다.<br><br>분량이 적어서 사흘 동안 출퇴근하며 다 읽었지만, 그것이 말하는 교훈은 어떤 이들에게는 정말 값진 것일 수도 있다.<br><br>다시 그 내용을 음미해 볼 필요가 있겠다.</p><br/><br/>tag : <a href="/tag/마시멜로" rel="tag">마시멜로</a>,&nbsp;<a href="/tag/이야기" rel="tag">이야기</a>			 ]]> 
		</description>
		<category>일상</category>
		<category>마시멜로</category>
		<category>이야기</category>

		<comments>http://techmania.egloos.com/1863641#comments</comments>
		<pubDate>Sun, 13 Jul 2008 02:40:38 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Visual C++에서 경고 관련 pragma 정리 ]]> </title>
		<link>http://techmania.egloos.com/1862127</link>
		<guid>http://techmania.egloos.com/1862127</guid>
		<description>
			<![CDATA[ 
  <p>[출처: VS.NET 2003 설명서 번역]<br><br><strong><span style="COLOR: #3333ff">#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] )<br>#pragma warning( push[ ,n ] )<br>#pragma warning( pop )<br></span></strong><br>컴파일러 경고 메시지 관련 동작에 대한 선택적 수정을 허용해준다.<br>경고-지시어(warning-specifier)는 다음의 것들 가운데 하나일 수 있다.<br></p><p><br><strong>경고-지시어의 의미<br></strong><br><strong><span style="COLOR: #3333ff">once</span></strong><br>지정한 메시지(들)을 오직 한 번만 표시한다.<br><br><strong><span style="COLOR: #3333ff">default</span></strong><br>경고 동작을 그것의 디폴트값으로 재설정(reset)한다. 이것은 디폴트로 꺼져 있는 경고를 켜는 효과도 가지고&nbsp;있다. 이제 그 경고의 디폴트(문서에 기록된)&nbsp;수준에서 해당 경고가 발생될 것이다.<br><br>좀 더 자세한 정보를 원한다면, <a href="http://msdn.microsoft.com/en-us/library/23k5d385(VS.80).aspx">디폴트로 꺼져 있는 컴파일러 경고들</a>을 보라.<br>&nbsp;<br><strong><span style="COLOR: #3333ff">1, 2, 3, 4</span></strong><br>지정한 경고(들)에 대해 주어진 수준을 적용한다. 이것&nbsp;역시 디폴트로 꺼져 있는 경고를 켜는 효과를 가지고&nbsp;있다. <br><br><strong><span style="COLOR: #3333ff">disable</span></strong><br>지정한 경고 메시지(들)를 발생되지 않도록 한다.<br><br><strong><span style="COLOR: #3333ff">error</span></strong><br>지정한 경고들을 에러로 보고한다.</p><p><br>경고-숫자-리스트(warning-number-list)는 어떤 경고 숫자들이라도 포함할 수 있다. 다음처럼 같은 pragma 지시문안에서 여러 옵션들을 지정할 수 있다:</p><p><br>#pragma warning( disable : 4507 34; once : 4385; error : 164 )<br><br>이것은 기능적으로 다음과 동등하다:</p><p><br>#pragma warning( disable : 4507 34 )&nbsp; // 경고 메시지 4507과 4034를 끈다(disable).<br>#pragma warning( once : 4385 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 경고 4385를 한 번만 발생시킨다.<br>#pragma warning( error : 164 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 경고 4164를 에러로 보고한다.<br><br>컴파일러는 0~999 사이의 경고 숫자에 4000을 더한다는 점을 주의하라.<br></p><p><br>4699보다 큰 경고 숫자들(코드 생성과 관련있다)에 대해서, 경고 pragma는 함수 정의 외부에서만 효과가 있다. 따라서, 경고 pragma가 4699보다 큰 경고 숫자를 함수 안에서 사용할 경우 그것은 무시된다는 뜻이다. 다음의 예는 코드-생성 경고 메시지 발생을 끄고(disable), 복원하는(restore) 경고 pragma들의 올바른 위치를 보여준다:<br><br>int a;<br>#pragma warning( disable : 4705 )<br>void func()<br>{<br>&nbsp;&nbsp;&nbsp; a;<br>}<br>#pragma warning( default : 4705 )<br><br>함수 몸체 안에서는, 마지막 경고 pragma 설정이 전체 함수에 대해 영향을 미친다는 점을 주의하라.<br></p><p>경고 pragma는 다음과 같은 구문도 지원한다:</p><p><br>#pragma warning( push [ ,n ] )</p><p>#pragma warning( pop )</p><p><br>여기서, n은 경고 수준(1~4)을 나타낸다.<br><br>pragma warning( push )는 모든 경고들에 대한 현재 경고 상태를 저장한다. pragma warning( push, n)는 모든 경고들에 대한 현재 경고 상태를 저장하고, 전역 경고 수준(global warning level)을 n으로 설정한다.<br><br>pragma warning( pop )은 스택에 push된 마지막 경고 상태를 pop한다. push와 pop사이의 어떠한 경고 상태 변화라도 취소된다(be undone).&nbsp;다음 예를 살펴 보자:<br></p><p><br>#pragma warning( push )<br>#pragma warning( disable : 4705 )<br>#pragma warning( disable : 4706 )<br>#pragma warning( disable : 4707 )<br>// 어떤 코드<br>#pragma warning( pop ) <br><br>이 코드의 마지막에서, pop은 4705, 4706, 4707을 포함한 모든 경고들의 상태를 코드의 시작 지점의 상태로 복원한다.<br><br>당신이 헤더 파일을 작성한다고 할 때, 그 헤더 파일의 사용자가 설정하는 경고 상태 변화가 당신의 헤더를 적절히 컴파일되지 못하게 하는 것을 막기 위해서, push와 pop을 사용할 수 있다. 헤더의 시작 부분에 push를 쓰고, 마지막에 pop을 써라. 예를 들어, 경고 수준 4에서는 깨끗하게(cleanly) 컴파일되지 않는 헤더가 있다고 가정해 보자. 다음 코드는 경고 수준을 3으로 변경하고, 헤더의 마지막에서 원래 경고 수준으로 복원한다.<br></p><p><br>#pragma warning( push, 3 )<br>// 선언/정의<br>#pragma warning( pop ) <br><br>경고를 억제하는 컴파일러 옵션에 대해서는 /FI와 /w를 보라.</p><br/><br/>tag : <a href="/tag/visual" rel="tag">visual</a>,&nbsp;<a href="/tag/c" rel="tag">c</a>,&nbsp;<a href="/tag/pragma" rel="tag">pragma</a>,&nbsp;<a href="/tag/warning" rel="tag">warning</a>,&nbsp;<a href="/tag/경고" rel="tag">경고</a>			 ]]> 
		</description>
		<category>C, C++</category>
		<category>visual</category>
		<category>c</category>
		<category>pragma</category>
		<category>warning</category>
		<category>경고</category>

		<comments>http://techmania.egloos.com/1862127#comments</comments>
		<pubDate>Sat, 12 Jul 2008 10:50:57 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 경고 수준 설정용 Visual C++ 컴파일러 옵션들 정리 ]]> </title>
		<link>http://techmania.egloos.com/1861997</link>
		<guid>http://techmania.egloos.com/1861997</guid>
		<description>
			<![CDATA[ 
  <p>[출처: VS.NET 2003 설명서 번역]<br><br>경고 수준(Warning Levels)에 관련된 Visual C++ 컴파일러 옵션들:<br><br><strong><span style="COLOR: #3333ff">/Wn<br>/WX<br>/Wall<br>/wnn<br>/wdn<br>/wen<br>/won<br></span></strong><br>이 옵션들은 컴파일러가 경고(warning)를 발생시키는 방법을 지정하는 것이다.<br><br>옵션:</p><p><br><strong><span style="COLOR: #3333ff">[/Wn]</span></strong><br>컴파일러가 발생시키는 경고의 최고 수준을 지정한다. 유효한 경고 수준의 범위는 0에서 4까지이다.<br><br><strong>수준&nbsp;0:</strong> 경고를 전혀 하지 않는다.<br><strong>수준&nbsp;1:</strong> 심각한(severe) 경고를 표시한다.<br><strong>수준&nbsp;2:</strong> 수준 1의 모든 경고와 수준 1보다는 덜 심각한 경고를 표시한다. 수준 2는 명령행(command line)에서 디폴트 경고 수준이다.<br><strong>수준&nbsp;3:</strong>&nbsp;수준 2의 모든 경고와 제작 목적(production purposes)에 대해 추천되는 경고를 표시한다(역주: VC 새 프로젝트의 디폴트 설정값이었다).<br><strong>수준&nbsp;4:</strong> 수준 3의 모든 경고에 더하여 정보 제공적 성격의&nbsp;경고(대부분의 경우 무시해도 안전한 것들이다)를 표시한다. 이 옵션은&nbsp;사소한 수준의 경고라도 표시하려는 목적을&nbsp;위해서만 사용되어야 하며, 평상시의 경고 수준 설정으로는 추천되지 않는다(This option should be used only to provide "lint" level warnings and is not recommended as your usual warning level setting).<br><br>새 프로젝트에 대해서, 모든 컴파일에 대해서 /W4를 사용하는 것이 최선일 수도 있다. 이것은 찾기 어려운 코드 결함이 최소화되도록 해준다.<br>&nbsp;<br><strong><span style="COLOR: #3333ff">[/Wall]</span></strong><br>디폴트로&nbsp;꺼져 있는 경고들을 포함해서, 모든 경고를&nbsp;표시한다. <a href="http://msdn.microsoft.com/en-us/library/23k5d385(VS.80).aspx">디폴트로 꺼져 있는 컴파일러 경고들</a>을 참고하라(See <a href="http://msdn.microsoft.com/en-us/library/23k5d385(VS.80).aspx">Compiler Warnings That Are Off By Default</a>).<br><br><strong><span style="COLOR: #3333ff">[/WX]</span></strong><br>모든 경고에 대해 그것을 에러로 처리한다. 새 프로젝트에 대해서는, 모든 컴파일에 대해서 /WX를 사용하는 것이 최선일 수도 있다; 모든 경고를 해결하는 것은 찾기 어려운 코드 결함이 최소화되도록 해준다.<br><br><strong><span style="COLOR: #3333ff">[/wnn]</span></strong><br>특별한 경고에 대해서 수준을 지정한다. 첫 번째 매개변수(parameter)는 경고 수준을 설정하고(/Wn에서와 같다), 두 번째 매개변수는 실제 경고 번호이다.<br><br>예를 들어, /w14326은&nbsp;경고 수준 1로서 경고 C4326이 발생되게 한다.<br>&nbsp;<br><strong><span style="COLOR: #3333ff">[/wdn]</span></strong><br>n으로 지정한 컴파일러 경고를 끈다(disable).<br><br>예를 들어, /wd4326은 C4326 컴파일러 경고를 끈다.<br>&nbsp;<br><strong><span style="COLOR: #3333ff">[/wen]</span></strong><br>n으로 지정한 특정한 컴파일러 경고를 에러로 처리한다.<br><br>예를 들어, /we4326은 경고 번호 C4326을 에러로&nbsp;간주하게 해준다.<br>&nbsp;<br><strong><span style="COLOR: #3333ff">[/won]</span></strong><br>n이 컴파일러 경고일 때, 오직 한 번만 보고한다.<br><br>예를 들어, /wo4326은 경고 C4326이 딱 한 번만 보고되도록 한다.&nbsp;<br></p><br/><br/>tag : <a href="/tag/Visual" rel="tag">Visual</a>,&nbsp;<a href="/tag/C" rel="tag">C</a>,&nbsp;<a href="/tag/컴파일러" rel="tag">컴파일러</a>,&nbsp;<a href="/tag/옵션" rel="tag">옵션</a>,&nbsp;<a href="/tag/compiler" rel="tag">compiler</a>,&nbsp;<a href="/tag/option" rel="tag">option</a>,&nbsp;<a href="/tag/경고" rel="tag">경고</a>,&nbsp;<a href="/tag/warning" rel="tag">warning</a>,&nbsp;<a href="/tag/수준" rel="tag">수준</a>,&nbsp;<a href="/tag/level" rel="tag">level</a>			 ]]> 
		</description>
		<category>C, C++</category>
		<category>Visual</category>
		<category>C</category>
		<category>컴파일러</category>
		<category>옵션</category>
		<category>compiler</category>
		<category>option</category>
		<category>경고</category>
		<category>warning</category>
		<category>수준</category>
		<category>level</category>

		<comments>http://techmania.egloos.com/1861997#comments</comments>
		<pubDate>Sat, 12 Jul 2008 09:42:01 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Visual Studio .NET 2003 Service Pack 1 설명 연결 ]]> </title>
		<link>http://techmania.egloos.com/1856145</link>
		<guid>http://techmania.egloos.com/1856145</guid>
		<description>
			<![CDATA[ 
  <p><a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;918007">연결</a> &lt;- 클릭</p><br/><br/>tag : <a href="/tag/Visual" rel="tag">Visual</a>,&nbsp;<a href="/tag/Studio" rel="tag">Studio</a>,&nbsp;<a href="/tag/2003" rel="tag">2003</a>,&nbsp;<a href="/tag/Service" rel="tag">Service</a>,&nbsp;<a href="/tag/Pack" rel="tag">Pack</a>			 ]]> 
		</description>
		<category>C, C++</category>
		<category>Visual</category>
		<category>Studio</category>
		<category>2003</category>
		<category>Service</category>
		<category>Pack</category>

		<comments>http://techmania.egloos.com/1856145#comments</comments>
		<pubDate>Thu, 10 Jul 2008 00:49:49 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ VC++ Minimum Rebuild 옵션(/Gm)... ]]> </title>
		<link>http://techmania.egloos.com/1805861</link>
		<guid>http://techmania.egloos.com/1805861</guid>
		<description>
			<![CDATA[ 
  <p>프로젝트 Property -&gt; C/C++ -&gt; Code Generation -&gt; Enable Minimal Rebuild 라는 옵션이 있는데, 디폴트 값인 /Gm은 "클래스 정의의 변화가 있는지 감지하여, 오직 그 변화에 영향받는 소스 파일들만을 재컴파일하는" 옵션이란다.<br><br>설명서를 좀 읽어보니, 자세하지는 않았지만, 처음 컴파일할 경우, 클래스 정의(아마도, 헤더(.h)에 정의되어 있을 것이다)를 .idb 파일로 컴파일하고, 나중에 그 파일을 이용해서 소스 파일들을 컴파일하는 것 같다. 클래스 정의에 변경이 없다면, 계속 먼저 만들어 놓은 그 .idb 파일을 이용하여 소스 파일들을 컴파일하게 되므로 좀 빠르기는 할 것이다.<br><br>그런데, 이게 좀 이상하다. 어떤 경우에는 클래스 정의의 변경이 소스 파일들에 반영되는 듯하다가, 어떤 때는 그게 잘 안되는 것 같다.<br><br>되다, 안되다 그런다. (아마도 내가 문제의 원인을 깊이 있게 파악하지 못해서이리라. VC++의 버그는 아닐 것이다.)<br><br>특히, 클래스의 멤버 함수가 디폴트값을 가질 경우, 그 디폴트값을 살짝 변경시켜 다시 빌드하게 되면, 변경된 값이 반영되지 않았다.<br><br>VS 2003이나 2008에서 테스트를 해 보았는데, 동일한 문제가 있었다.<br><br>디폴트값을 가지는 멤버 함수를 종종 사용하고, 때로는 그 값들을 수시로 변경할 때가 있는데, 그러한 변경이 반영되지 않을 수 있으니, VC++ 프로젝트를 시작할 때는 언제나&nbsp;<strong><span style="COLOR: #ff0000">/Gm 옵션은 끄도록 하는 것이 좋겠다.</span></strong><br><br>참고로, Release 모드의 경우에는 디폴트로 그 옵션이 꺼져 있었다. 위 문제점은 Debug 모드의 디폴트 설정이 일으킬 수 있는 문제점이다.</p><br/><br/>tag : <a href="/tag/VC" rel="tag">VC</a>			 ]]> 
		</description>
		<category>C, C++</category>
		<category>VC</category>

		<comments>http://techmania.egloos.com/1805861#comments</comments>
		<pubDate>Sat, 21 Jun 2008 14:23:25 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 단위 환산 프로그램 ]]> </title>
		<link>http://techmania.egloos.com/1793154</link>
		<guid>http://techmania.egloos.com/1793154</guid>
		<description>
			<![CDATA[ 
  몇 년간 유용하게 쓰고 있는 단위 환산(변환) 프로그램이다. --&gt; <a href="http://pds9.egloos.com/pds/200806/17/02/Units.zip">Units.zip</a><br/><br/>tag : <a href="/tag/단위환산" rel="tag">단위환산</a>,&nbsp;<a href="/tag/단위" rel="tag">단위</a>,&nbsp;<a href="/tag/환산" rel="tag">환산</a>,&nbsp;<a href="/tag/단위변환" rel="tag">단위변환</a>,&nbsp;<a href="/tag/변환" rel="tag">변환</a>			 ]]> 
		</description>
		<category>윈도우즈</category>
		<category>단위환산</category>
		<category>단위</category>
		<category>환산</category>
		<category>단위변환</category>
		<category>변환</category>

		<comments>http://techmania.egloos.com/1793154#comments</comments>
		<pubDate>Mon, 16 Jun 2008 23:37:14 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 삼성 PAVV LCD TV 시간 설정 문제 ]]> </title>
		<link>http://techmania.egloos.com/1614922</link>
		<guid>http://techmania.egloos.com/1614922</guid>
		<description>
			<![CDATA[ 
  2006년 4월에 구입한 삼성 PAVV 32인치 LCD TV(모델명: LN32T72BD)가 며칠전부터 시간 설정 및 표시가 되지 않아 삼성 서비스 센터에 글을 남기니 AS 요청하라고 해서 AS 요청했는데, 기사가 와서 하는 말이 메인보드를 통째로 바꿔야 한단다.<br><br>1년 보증기간이 지났으므로 보드값은 사용자가 지불해야 한단다. 2년을 봤으니 TV값은 많이 떨어졌을테고, 보드값 2십 몇만원을 내고 바꾸려니 억울하다는 생각이 든다.<br><br>기사는 제품 본래의 하자임을 인정하나 규정상 1년 보증기간이 지났으므로 사용자가 돈을 내고 교환해야 한단다.<br><br>뭐 이런 개 떡같은 경우가 다 있나?<br><br>보드 펌웨어만 업데이트 시키면 될 듯 싶은데, 보드를 통째로 교환해야 한다는 말도 사실 납득하기 어렵다. 그걸로 돈 벌어 보겠다는 속셈인 것 같기도 하다.<br><br>분명 삼성은 그 문제를 알고 있었을 것이다. 제품 하자를 숨기고 지금까지 보드 교환을 미뤄온 삼성에게 1차적인 책임이 있다고 생각한다.<br><br>방법을 강구해 봐야겠다. 억울해서 못 살겠다.<br/><br/>tag : <a href="/tag/삼성" rel="tag">삼성</a>,&nbsp;<a href="/tag/PAVV" rel="tag">PAVV</a>,&nbsp;<a href="/tag/파브" rel="tag">파브</a>,&nbsp;<a href="/tag/LCD" rel="tag">LCD</a>,&nbsp;<a href="/tag/TV" rel="tag">TV</a>,&nbsp;<a href="/tag/시간" rel="tag">시간</a>,&nbsp;<a href="/tag/문제" rel="tag">문제</a>,&nbsp;<a href="/tag/버그" rel="tag">버그</a>,&nbsp;<a href="/tag/AS" rel="tag">AS</a>			 ]]> 
		</description>
		<category>삼성</category>
		<category>PAVV</category>
		<category>파브</category>
		<category>LCD</category>
		<category>TV</category>
		<category>시간</category>
		<category>문제</category>
		<category>버그</category>
		<category>AS</category>

		<comments>http://techmania.egloos.com/1614922#comments</comments>
		<pubDate>Tue, 15 Apr 2008 07:28:27 GMT</pubDate>
		<dc:creator>돌멩이</dc:creator>
	</item>
</channel>
</rss>
