<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text">프로그래밍 Tip</title>
      <updated>2010-08-01T05:51:06+09:00</updated>
   <id>http://lunapiece.net/?mid=Tips&amp;act=atom</id>
   <link rel="alternate" type="text/html" hreflang="ko" href="http://lunapiece.net/Tips"/>
   <link rel="self" type="application/atom+xml" href="http://lunapiece.net/?mid=Tips&amp;act=atom"/>
   <generator uri="http://www.xpressengine.com/" version="1.4.3">XpressEngine</generator>
   <entry>
      <title>Tortoise SVN 에서 Araxis Merge 사용하기.</title>
      <id>http://lunapiece.net/4283</id>
      <published>2010-07-22T22:38:03+09:00</published>
      <updated>2010-07-22T22:38:03+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4283"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4283#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;TortoiseSVN&lt;br /&gt;&lt;br /&gt;The External Programs section of the TortoiseSVN This link is to an external website Settings window enables external diff and merging programs to be configured.&lt;br /&gt;&lt;br /&gt;Merge can also integrate directly with Subversion. Please see Subversion for more information.&lt;br /&gt;To configure Merge as the Diff Viewer:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In the TortoiseSVN Settings window, select the Diff Viewer page (located under External Programs).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select the External radio button.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In path field, enter the following (all on one line):&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;C:\Program Files\Araxis\Araxis Merge\compare.exe&quot; /max /wait /title1:%bname /title2:%yname %base %mine&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: in the above path, replace C:\Program Files\Araxis\Araxis Merge\ with the full path of the Merge installation directory on your machine.&lt;br /&gt;&lt;br /&gt;To configure Merge as the Merge Tool:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In the TortoiseSVN Settings window, select the Merge Tool page (located under External Programs).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select the External radio button.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In path field, enter the following (all on one line):&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;C:\Program Files\Araxis\Araxis Merge\compare.exe&quot; /a2 /max /wait /3 /title1:%tname /title2:%bname /title3:%yname %theirs %base %mine %merged&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: in the above path, replace C:\Program Files\Araxis\Araxis Merge\ with the full path of the Merge installation directory on your machine.&lt;br /&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>폴더 선택 다이얼로그</title>
      <id>http://lunapiece.net/4281</id>
      <published>2010-07-20T10:39:19+09:00</published>
      <updated>2010-07-20T10:39:19+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4281"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4281#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;SelectDirectory를 사용한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;FileCtrl 유닛 필요&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Tortoise SVN 에서 Beyond Compare 사용하기</title>
      <id>http://lunapiece.net/4275</id>
      <published>2010-07-05T13:39:21+09:00</published>
      <updated>2010-07-05T13:39:21+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4275"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4275#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;strong&gt;Diff&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Select &lt;strong&gt;Settings&lt;/strong&gt; from Explorer&apos;s &lt;strong&gt;TortoiseSVN&lt;/strong&gt;
 submenu.
&lt;/li&gt;&lt;li&gt;Switch to the &lt;strong&gt;Diff Viewer&lt;/strong&gt; tab.
&lt;/li&gt;&lt;li&gt;Change the radio buttons from &lt;strong&gt;TortoiseMerge&lt;/strong&gt; to
 &lt;strong&gt;External&lt;/strong&gt;.
&lt;/li&gt;&lt;li&gt;In the path edits, enter:&lt;br /&gt;&lt;code&gt;&quot;C:\Program Files\Beyond 
Compare 3\BComp.exe&quot; %base %mine /title1=%bname /title2=%yname 
/leftreadonly&lt;/code&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;To use Beyond Compare for image comparisons either replace the file 
C:\Program Files\TortoiseSVN\bin\TortoiseIDiff.exe with a copy of 
BComp.exe, or click the &lt;strong&gt;Advanced&lt;/strong&gt; button on the &lt;strong&gt;Diff
 Viewer&lt;/strong&gt; tab and add each image type&apos;s extension with the same 
command line as above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3-Way Merge&lt;/strong&gt; (v3 Pro)&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Select &lt;strong&gt;Settings&lt;/strong&gt; from Explorer&apos;s &lt;strong&gt;TortoisSVN&lt;/strong&gt;
 submenu.
&lt;/li&gt;&lt;li&gt;Switch to the &lt;strong&gt;Merge Tool&lt;/strong&gt; tab.
&lt;/li&gt;&lt;li&gt;Change the radio buttons from &lt;strong&gt;TortoiseMerge&lt;/strong&gt; to
 &lt;strong&gt;External&lt;/strong&gt;.
&lt;/li&gt;&lt;li&gt;In the path edits, enter:&lt;br /&gt;&lt;code&gt;&quot;C:\Program Files\Beyond 
Compare 3\BComp.exe&quot; %mine %theirs %base %merged /title1=%yname 
/title2=%tname /title3=%bname /title4=%mname&lt;/code&gt;
&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;2-Way Merge&lt;/strong&gt; (v3 Std, v2)&lt;/p&gt;
Use the same steps as above, but use the command line:&lt;br /&gt;&lt;code&gt;&quot;C:\Program
 Files\Beyond Compare 3\BComp.exe&quot; %mine %theirs /savetarget=%merged&lt;/code&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>프로세스를 실행할 CPU 지정</title>
      <id>http://lunapiece.net/4272</id>
      <published>2010-07-02T14:14:40+09:00</published>
      <updated>2010-07-05T13:38:51+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4272"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4272#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;SetProcessAffinityMask 를 사용합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>SVN Ignore List</title>
      <id>http://lunapiece.net/4266</id>
      <published>2010-06-19T02:06:47+09:00</published>
      <updated>2010-06-19T02:06:47+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4266"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4266#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;*.dcu *.exe *.local *.bak *.temp *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store *.sdf *.filters&amp;nbsp; *.suo *.user *.tlog *.lastbuildstate *.obj *.ipch *.pdb *.ilk Debug *.log ipch __history&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Delphi, VS2008, VS2010 통합&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Direct2D 기본 템플릿</title>
      <id>http://lunapiece.net/4253</id>
      <published>2010-06-08T22:07:25+09:00</published>
      <updated>2010-06-08T22:23:49+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4253"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4253#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;#include &amp;lt;d2d1.h&amp;gt;&lt;br /&gt;//#include &amp;lt;d2d1helper.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#pragma comment(lib, &quot;d2d1.lib&quot;)&lt;br /&gt;&lt;br /&gt;LRESULT PASCAL WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);&lt;br /&gt;int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);&lt;br /&gt;HRESULT CreateRenderTarget(HWND hWnd);&lt;br /&gt;void ReleaseRenderTarget();&lt;br /&gt;&lt;br /&gt;void OnPaint(HWND hWnd);&lt;br /&gt;void OnSize(UINT Width, UINT Height);&lt;br /&gt;&lt;br /&gt;ID2D1Factory* Direct2DFactory = nullptr;&lt;br /&gt;ID2D1HwndRenderTarget* RenderTarget = nullptr;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;HRESULT hResult;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;hResult = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &amp;amp;Direct2DFactory);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (SUCCEEDED(hResult))&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.style&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CS_HREDRAW | CS_VREDRAW;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.lpfnWndProc&amp;nbsp;&amp;nbsp; = &amp;amp;WndProc;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.cbClsExtra&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.cbWndExtra&amp;nbsp;&amp;nbsp;&amp;nbsp; = sizeof(LONG_PTR);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.hInstance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = hInstance;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.hbrBackground = nullptr;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.lpszMenuName&amp;nbsp; = nullptr;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.hCursor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = LoadCursor(nullptr, IDI_APPLICATION);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;wcex.lpszClassName = L&quot;Direct2D Template&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RegisterClassEx(&amp;amp;wcex);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;HWND hWnd = CreateWindow(L&quot;Direct2D Template&quot;, L&quot;Direct2D Template&quot;, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, nullptr, nullptr, hInstance, nullptr);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;BOOL ShowWindowState = ShowWindow(hWnd,nCmdShow);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (ShowWindowState = TRUE)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ShowWindow(hWnd, nCmdShow);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;UpdateWindow(hWnd);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Window Create Error&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MSG Message;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (GetMessage(&amp;amp;Message, nullptr, 0, 0))&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;TranslateMessage(&amp;amp;Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DispatchMessage(&amp;amp;Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return static_cast&amp;lt;int&amp;gt;(Message.wParam);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//D2D Initialization Error&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;HRESULT CreateRenderTarget(HWND hWnd)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;HRESULT hResult = S_OK;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (RenderTarget == nullptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RECT Rect;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;GetClientRect(hWnd, &amp;amp;Rect);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;D2D1_SIZE_U size = D2D1::SizeU(Rect.right - Rect.left, Rect.bottom - Rect.top);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;hResult = Direct2DFactory-&amp;gt;CreateHwndRenderTarget(D2D1::RenderTargetProperties(), D2D1::HwndRenderTargetProperties(hWnd, size),&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;RenderTarget);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return hResult;&lt;br /&gt;}&lt;br /&gt;void ReleaseRenderTarget()&lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (RenderTarget == nullptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RenderTarget-&amp;gt;Release();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RenderTarget = nullptr;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;LRESULT PASCAL WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;switch (message) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case WM_CREATE:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case WM_PAINT:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;OnPaint(hWnd);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case WM_SIZE:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;UINT Width = LOWORD(lParam);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;UINT Height = HIWORD(lParam);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;OnSize(Width, Height);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case WM_DESTROY:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PostQuitMessage(0);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; return(DefWindowProc(hWnd, message,wParam,lParam));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void OnSize(UINT Width, UINT Height)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(RenderTarget != nullptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RenderTarget-&amp;gt;Resize(D2D1::SizeU(Width, Height));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void OnPaint(HWND hWnd)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;HRESULT hResult = CreateRenderTarget(hWnd);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(SUCCEEDED(hResult))&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RenderTarget-&amp;gt;BeginDraw();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;D2D1::ColorF BackGroundColor(255,255,255); //RGB&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RenderTarget-&amp;gt;Clear(BackGroundColor);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;D2D1::ColorF BrushColor(D2D1::ColorF::Black);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ID2D1SolidColorBrush* RectBrush;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RenderTarget-&amp;gt;CreateSolidColorBrush(BrushColor, &amp;amp;RectBrush);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;D2D1_RECT_F RectangleRect = D2D1::RectF(100.0f, 100.0f, 400.0f, 300.0f);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RenderTarget-&amp;gt;DrawRectangle(RectangleRect, RectBrush);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;hResult = RenderTarget-&amp;gt;EndDraw();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (hResult == D2DERR_RECREATE_TARGET)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//이 경우 RenderTarget이 무효화 된 것이며, RenderTarget과 RenderTarget에서 생성된 모든 객체를 해제한 후 다시 생성해야 한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ReleaseRenderTarget();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>C++ 0x 에서 변화된 부분.</title>
      <id>http://lunapiece.net/4249</id>
      <published>2010-06-02T12:57:26+09:00</published>
      <updated>2010-06-02T12:57:26+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4249"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4249#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;VC++ 기준으로 쓰여진 글이지만, 다른 컴파일러 사용자들도 공부가 될만한 자료&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Windows Vista/7 RunAs... (다른 계정으로 실행) 사용하기.</title>
      <id>http://lunapiece.net/4244</id>
      <published>2010-05-24T04:05:22+09:00</published>
      <updated>2010-05-24T04:05:22+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4244"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4244#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Shift + 우클릭 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;안되는게 아니라 숨겨져있을뿐&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Windows Vista/7 Hibernation (최대절전모드) 끄기</title>
      <id>http://lunapiece.net/4242</id>
      <published>2010-05-24T03:02:15+09:00</published>
      <updated>2010-05-24T03:02:15+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4242"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4242#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;powercfg -h off&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Serv-U 서버에서 UTF-8 사용 안하기.</title>
      <id>http://lunapiece.net/4238</id>
      <published>2010-05-19T00:02:09+09:00</published>
      <updated>2010-05-19T00:02:09+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4238"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4238#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;그 거지같은 알FTP(UTF-8 지원안한다) 쓰는 사람 때문에 별수없이 서버에서 UTF-8 설정을 바꿔야 하는 초유의 사태 발생 ㅜ.ㅜ&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;Server Limits and Settings -&amp;gt; FTP Settings -&amp;gt; Global Properties&lt;/p&gt;
&lt;p&gt;-&amp;gt; Use UTF-8 encoding for all sent and received paths and file 
names&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br  /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;다음과같은 순서로 해제한다.&lt;br  /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>OS가 x86인지 AMD64 인지 구별하는 방법</title>
      <id>http://lunapiece.net/4231</id>
      <published>2010-05-14T15:00:09+09:00</published>
      <updated>2010-05-14T15:00:09+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4231"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4231#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); font-family: 돋움; &quot;&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); font-family: 돋움; &quot;&gt;IsWow64Process를 사용한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); font-family: 돋움; &quot;&gt;&lt;br  /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); font-family: 돋움; &quot;&gt;Kernel32.dll에 있으며, GetProcAddress로 찾아오는것에 실패하면 32bit OS,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;찾아오는것에 성공하나 true 가 리턴되면 WOW64, 성공하고 false가 리턴되면 x64 프로그램이다.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 51); font-family: 돋움; &quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Tortoise SVN 오버레이 아이콘 제대로 안나올시</title>
      <id>http://lunapiece.net/4229</id>
      <published>2010-05-06T15:45:11+09:00</published>
      <updated>2010-05-06T15:45:11+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4229"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4229#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Repair 모드로 설치후 재부팅 하면 제대로 나온다.&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>델파이 수학 반올림 방법</title>
      <id>http://lunapiece.net/4227</id>
      <published>2010-04-29T17:45:56+09:00</published>
      <updated>2010-04-29T17:45:56+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4227"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4227#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;델파이는 기본적으로 IEEE에 등록된 Banker&apos;s Rounding 을 사용한다.&lt;/p&gt;&lt;p&gt;자세한 이론은 제쳐두고 일단 이건 결과물을 무조건 짝수에 맞추는 방법이다&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;즉 11.5 - &amp;gt; 12, 12.5 -&amp;gt; 12 가 된다&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;그러나 수학연산할땐 이 방법을 잘 쓰진 않는데(사실 Banker&apos;s Rounding 이 오차가 작다....)&lt;/p&gt;&lt;p&gt;FPU 의 Control Bit를 바꿔 이를 수정할 수 있다&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;procedure TForm2.FormCreate(Sender: TObject);&lt;/p&gt;&lt;p&gt;var&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;Val : Integer;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;Num : Extended;&lt;/p&gt;&lt;p&gt;Const&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;MathRoundMode : Word = $1B32;&lt;/p&gt;&lt;p&gt;begin&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;Num := 2.5;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;Set8087CW(MathRoundMode);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;Val := Round(Num);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;Set8087CW(Default8087CW);&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;OutputDebugString(PChar(IntToStr(Val)));&lt;/p&gt;&lt;p&gt;end;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 16px; &quot;&gt;&lt;b&gt;FPU의 설정을 바꾸는 것이기 때문에 특별한 경우가 아니라면 쓰고나서 돌려놓자!&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;Ps. 왠지모르게 변수대신 상수로 넣으면 안되더라 =_=;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Invoke 시 데드락 문제.</title>
      <id>http://lunapiece.net/4225</id>
      <published>2010-04-28T15:03:34+09:00</published>
      <updated>2010-04-28T15:03:34+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4225"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4225#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;SerialPort 에서 close 시 Recv Thread 가 Invoke 를 하고 있으면&lt;/p&gt;&lt;p&gt;Close 시의 Main -&amp;gt; Recv Wait 와&lt;/p&gt;&lt;p&gt;Invoke 시의 Recv -&amp;gt; Main Wait 가 충돌하여 데드락에 걸린다&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;해결방법은&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;1. PeekMessage를 써서 해결한다(델파이가 이런식으로 해결하는데... 근데 이거 참 더럽다. 닷넷에선 쓰기가. Native 에선 쉽게 쓸 수 있지만..)&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;2. this.Invoke 대신 this.BeginInvoke 를 사용한다.&lt;/p&gt;&lt;p&gt;Invoke 가 SendMessage 라면 BeginInvoke 는 PostMessage 라 할 수 있다. 전역데이터를 사용할 수 없고그때그때 메모리를 할당해서 Post 해야하는 부담이 잇지만(안그럼 충돌나는거지 뭐...) 난 사실 이쪽이 더 익숙하다.&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>NateOn 쪽지왔을 때 처럼 작업표시줄에서 폼 깜빡깜빡 거리기</title>
      <id>http://lunapiece.net/4221</id>
      <published>2010-04-27T16:18:38+09:00</published>
      <updated>2010-04-27T16:18:38+09:00</updated>
      <link rel="alternate" type="text/html" href="http://lunapiece.net/4221"/>
      <link rel="replies" type="text/html" href="http://lunapiece.net/4221#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Timer 를 이용하여 FlashWindow 함수를 반복 호출 하면 된다.&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
</feed> 
