<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text">달의 한조각이 머무는곳</title>
      <updated>2012-02-09T20:49:33+09:00</updated>
   <id>http://www.lunapiece.net/index.php?module=rss&amp;act=atom</id>
   <link rel="alternate" type="text/html" hreflang="ko" href="http://www.lunapiece.net/"/>
   <link rel="self" type="application/atom+xml" href="http://www.lunapiece.net/index.php?module=rss&amp;act=atom"/>
   <generator uri="http://www.xpressengine.com/" version="1.5.1.6">XpressEngine</generator>
   <entry>
      <title>C++11 lambda 간단사용법과 성능비교.</title>
      <id>http://www.lunapiece.net/27419</id>
      <published>2012-01-29T16:46:38+09:00</published>
      <updated>2012-01-29T16:46:38+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27419"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27419#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;C++의 STL 에서는 여러가지 알고리즘을 제공한다.&lt;br /&gt;그중 &quot;임의의&quot; 동작을 할 수 있는 알고리즘들은 그 &quot;동작&quot; 의 대상이 되는 인자를 받도록 되어 있는데,&amp;nbsp;&lt;br /&gt;그 &quot;동작&quot;의 조건은&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 18px; &quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 18px; &quot;&gt;()연산자로 호출이 가능할것&lt;/span&gt;&lt;/b&gt;! 이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그 동작을 만족시키는것은 C에서는 함수가 있다.&lt;br /&gt;또 C++에서는 STL 과 함께 소개된 함수객체(Functor)가 있으며, STL 초기부터 제공된 bind1st, bind2nd가 있고, boost에서 제공되는 mem_fn 도 있으며, 이 모든것을 통합한 범용 bind(C++11 or boost에 포함)도 존재한다.&lt;/p&gt;&lt;p&gt;그리고 최신의 C++11 표준에 포함된 lambda도 있고, boost의 lambda도 있지만, 이쪽은 C++11 표준에 lambda가 포함 된 이상 더이상 쓸 일은 없을테니 이번 실험에선 제외한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;실험순서는 전역함수, bind된 전역함수, 함수객체, 람다, bind된 람다, auto를 이용해 bind된 람다 의 순이다.&lt;/p&gt;&lt;p&gt;실험은 Visual C++ 2010 Sp1, x86 Debug Build에서 테스트 하엿다. Release Mode 도 특성은 동일하다.&lt;/p&gt;&lt;p&gt;궂이 Debug Build로 테스트 한 이유는 Release모드에서 자꾸 전역함수를 inline화 시키는 바람에 =_=;&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;table style=&quot;background:#CCCCCC&quot; cellspacing=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr style=&quot;background:#FFFFFF&quot;&gt;&lt;td&gt;&lt;pre style=&quot;font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;cstdlib&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;cstdio&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;vector&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;random&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;cstdint&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;algorithm&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;functional&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;windows.h&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color:blue;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;namespace&lt;/span&gt;&amp;nbsp;std;
 
&lt;span style=&quot;color:blue;&quot;&gt;__int64&lt;/span&gt;&amp;nbsp;g_NumberSum;
 
&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;&amp;nbsp;GetSumFunction(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
{
	g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
}
 
&lt;span style=&quot;color:blue;&quot;&gt;struct&lt;/span&gt;&amp;nbsp;GetSumFunctor
{
	&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;operator&lt;/span&gt;()(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
	{
		g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
	}
};
 
&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;&amp;nbsp;wmain()
{
	&lt;span style=&quot;color:blue;&quot;&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;NUMBER_COUNT&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;100000000&lt;/span&gt;;
 
	mt19937_64&amp;nbsp;RandomEngine;
	uniform_int&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;RandomRange(&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;INT32_MAX);
	RandomEngine.seed(GetTickCount());
 
	vector&amp;lt;&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;RandumNumbers;
	RandumNumbers.reserve(NUMBER_COUNT);
	&lt;span style=&quot;color:blue;&quot;&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;NUMBER_COUNT;&amp;nbsp;++i)
	{
		RandumNumbers.push_back(RandomRange(RandomEngine));
	}
 
	DWORD&amp;nbsp;Tick;
&lt;span style=&quot;color:green;&quot;&gt;//function&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;GetSumFunction);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Global&amp;nbsp;Function&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//bind&amp;nbsp;function&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	function&amp;lt;&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;)&amp;gt;&amp;nbsp;FunctionObject&amp;nbsp;=&amp;nbsp;bind(&amp;amp;GetSumFunction,&amp;nbsp;tr1::placeholders::_1);
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;FunctionObject);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Bind&amp;nbsp;Function&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//functor&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();	
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;GetSumFunctor());
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Functor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//C++&amp;nbsp;11&amp;nbsp;Lambda&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;
		[](&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
		{
			g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
		});
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;C++11&amp;nbsp;Lambda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//C++11&amp;nbsp;Bind&amp;nbsp;Lambda&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	function&amp;lt;&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;)&amp;gt;&amp;nbsp;BindLambda&amp;nbsp;=&amp;nbsp;
		[](&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
		{
			g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
		};
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;BindLambda);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Bind&amp;nbsp;Lambda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//C++11&amp;nbsp;Auto&amp;nbsp;bind&amp;nbsp;Lambda&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	&lt;span style=&quot;color:blue;&quot;&gt;auto&lt;/span&gt;&amp;nbsp;AutoBindLambda&amp;nbsp;=&amp;nbsp;
		[](&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
		{
			g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
		};
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;AutoBindLambda);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Auto&amp;nbsp;Bind&amp;nbsp;Lambda::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;span style=&quot;background-color: white; &quot;&gt;}&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래는 결과이다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/419/027/be84973e4db0a1e5be5b28a08f4dec80.png&quot; alt=&quot;lambda.png&quot; class=&quot;iePngFix&quot; width=&quot;677&quot; height=&quot;442&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결과를 보면 lambda 가 가장 빠른 것을 볼 수 있다. 길게 나불대지 않고 성능 이슈와 원인을 아래 간략히 적어본다.&lt;br /&gt;1. 전역함수의 경우 함수 Call 오버헤드에 의해 속도가 조금 감소하엿다.&lt;/p&gt;&lt;p&gt;2. lambda, functor 는 사실상 오차범위 내의 차이라고 보인다.&lt;/p&gt;&lt;p&gt;3. bind lambda 의 경우는 std::fuction 객체가 함수호출 정보를 RTTI에 의존하는 특징때문에 속도를 왕창 까먹게 된다.&lt;/p&gt;&lt;p&gt;4. bind 된 전역함수의 경우는 RTTI의 오버헤드 + 함수호출로 인해 가장 느려진다.&lt;/p&gt;&lt;p&gt;5. auto를 사용해 변수에 저장한 lambda 는 std::fuction객체에 저장 하는 것이 아니라 일종의 inline 함수처럼 구현해준다. 그래서 오버헤드가 전혀 없이 빠른 속도를 보여준다. 즉 같은 함수객체를 2번이상 이용 할 경우 코드를 Copy&amp;amp;Paste 하지 않아도 auto를 이용하면 성능과 중복방지 두마리 코드를 다 잡을 수 있다.&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>BeginInvoke 호출시 Parameter 넘기기</title>
      <id>http://www.lunapiece.net/27367</id>
      <published>2012-01-16T09:26:25+09:00</published>
      <updated>2012-01-16T09:26:25+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27367"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27367#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;pre style=&quot;color: rgb(51, 51, 51); background-color: white; font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; &quot;&gt;
&lt;a href=&quot;http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=17&amp;amp;MAEULNo=8&amp;amp;no=142680&amp;amp;ref=142680&quot;&gt;http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=17&amp;amp;MAEULNo=8&amp;amp;no=142680&amp;amp;ref=142680&lt;/a&gt;

&lt;/pre&gt;&lt;pre style=&quot;color: rgb(51, 51, 51); background-color: white; font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; &quot;&gt;Devpia 질문으로 올라왔다.&lt;/pre&gt;&lt;pre style=&quot;color: rgb(51, 51, 51); background-color: white; font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; &quot;&gt;&lt;span style=&quot;color: blue; &quot;&gt;    public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;delegate&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(43, 145, 175); &quot;&gt;deleg&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;a);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;helloworld(&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;a)
&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;span style=&quot;color: rgb(43, 145, 175); &quot;&gt;MessageBox&lt;/span&gt;.Show(a.ToString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: red; &quot;&gt;0&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;void&lt;/span&gt;&amp;nbsp;Form1_Load(&lt;span style=&quot;color: blue; &quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style=&quot;color: rgb(43, 145, 175); &quot;&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)
&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;span style=&quot;color: blue; &quot;&gt;this&lt;/span&gt;.BeginInvoke(&lt;span style=&quot;color: blue; &quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(43, 145, 175); &quot;&gt;deleg&lt;/span&gt;(helloworld),&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;object&lt;/span&gt;[]&amp;nbsp;{&lt;span style=&quot;color: red; &quot;&gt;3&lt;/span&gt;});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;pre style=&quot;color: rgb(51, 51, 51); background-color: white; font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; &quot;&gt;코드 보면 알 수 있을만큼 간단한다.&lt;/pre&gt;&lt;pre style=&quot;color: rgb(51, 51, 51); background-color: white; font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; &quot;&gt;BeginInvoke 를 호출 하면서 delegate 외에 파라메터를 object 배열로 생성해서 넘겨주면 된다.
파라메터 갯수 안맞으면 바로 익셉션이니 주의!&lt;/pre&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Boost 빌드 방법</title>
      <id>http://www.lunapiece.net/27356</id>
      <published>2012-01-13T15:40:31+09:00</published>
      <updated>2012-01-13T17:08:21+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27356"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27356#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;1. Gem 만들기&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;bootstrap 실행 -&amp;gt; b2 실행파일이 생성&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;1.48.0에선 bjam -&amp;gt; b2 로 바뀌었다. 근데 bjam 도 그대로 된다 (...) 같은걸 2개 만들어줌&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;2. b2 빌드옵션&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;toolset=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 컴파일러 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;--buildtype=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 빌드방법 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;--libdir=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ output 폴더 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;--architecture=&amp;lt;&amp;gt; &amp;nbsp; ▷ target platform 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;address-model=&amp;lt;&amp;gt; &amp;nbsp;▷ bit수 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;install &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 빌드방법 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;define=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ define 상수 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;-j&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 병렬컴파일할 코어갯수 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14px; &quot;&gt;절대로 = 앞뒤에 공백 넣지 말것. 반드시 원하는 컴파일러/bit수의 Command Prompt &amp;nbsp;에서 실행할것&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;3. 예제&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;vc++ 2010으로 모든형태의 라이브러리(debug dll, debug static, release dll, release static)를 CRT 버전을 최신으로 하여 특정 Path에 &amp;nbsp;쿼드코어로 빌드 할경우&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;AMD64(EM64T)는 x86 아키텍쳐에 address 를 64bit로 지정해야한다. x64, AMD64, EM64T 등의 키워드는 불가능&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;32bit build&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;b2 -j4 toolset=msvc-10.0 --build-type=complete define=_BIND_TO_CURRENT_VCLIBS_VERSION &amp;nbsp;--libdir=c:\library\boost\lib\i386 install&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;64bit build&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;b2 -j4 toolset=msvc-10.0 --build-type=complete &amp;nbsp;define=_BIND_TO_CURRENT_VCLIBS_VERSION --libdir=c:\library\boost\lib\amd64 architecture=x86 address-model=64 install&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>DLLMain에서 하지 말아야 할것.</title>
      <id>http://www.lunapiece.net/27343</id>
      <published>2012-01-12T00:07:10+09:00</published>
      <updated>2012-01-12T00:33:00+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27343"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27343#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;DLLMain은 WinMain 이나 main 과는 다르게 제약이 많다.&lt;/p&gt;&lt;p&gt;나도 이걸로 크래시 낸 적이 &lt;strike&gt;많이&lt;/strike&gt;몇번 있고 ...&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DLLMain은 일종의 &quot;객체의생성자&quot; 라고 보면 비슷하다.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&quot;로딩중&quot; 인 것이지 로딩이 끝난것이 아니다&lt;/b&gt; 라는것이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래에는 Attach 시 기준으로 적었지만, Detach 에도 별 다를건 없다. kerner32.dll 이외의 dll은 이미 언로딩 되어있을 수도 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제 하지 말아야할것을 슬~슬 나열 해 보자.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. kernel32.dll 이외의 dll에 있는 함수 대부분.&lt;/p&gt;&lt;p&gt;kernel32.dll 이외의 dll이 로딩되어 있다는 보장은 전혀없다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. 동기화코드&lt;/p&gt;&lt;p&gt;락, 언락 등의 코드&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. LoadLibrary, CreateProcess&lt;/p&gt;&lt;p&gt;다른 DLL 쓰지말라는말과 일맥상통.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. 전역객체 초기화, 메모리할당 등&lt;/p&gt;&lt;p&gt;메모리메니저가 로딩되었다는 보장이 없다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. COM관련 코드&lt;/p&gt;&lt;p&gt;역시 보장없다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6. 예외 throw&lt;/p&gt;&lt;p&gt;C++ 객체 생성자에서 throw 하는것과 비슷한 대략므흣한 (...) 상황이 발생한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결론.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;DLLMain은 걍 비워 둬라&lt;/b&gt;. 그리고 Initialize 함수를 제공해라.&lt;br /&gt;상당수의 라이브러리가 라이브러리 초기화 함수를 제공하는것은 다 이유가 있다!&lt;/p&gt;&lt;p&gt;(당장 GDI+와 Winsock2를 생각해봐라!)&amp;nbsp;
&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Lyn Mercurial Server Stack</title>
      <id>http://www.lunapiece.net/27335</id>
      <published>2012-01-10T13:18:32+09:00</published>
      <updated>2012-02-09T10:09:08+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27335"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27335#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 32px; background-color: rgb(255, 0, 0); color: rgb(245, 244, 224); &quot;&gt;&lt;a href=&quot;http://lunapiece.net/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=27390&amp;amp;sid=24a39c3332fc13d67257c11726a903d2&quot;&gt;최신버전 다운로드&lt;/a&gt;&amp;lt;개인무료. 기업유료&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;목표&lt;/b&gt;&lt;/p&gt;&lt;p&gt;SVN 스타일의 중앙서버를 Mercurial 이용해서 세팅 하는것을 편하게 하자.&lt;br /&gt;결론 -&amp;gt; Visual SVN Server 따라하기!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;해야할것&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tab 이름이 잘못되어있다.. 지우자&lt;/p&gt;&lt;p&gt;hg serve 모드에선 push 권한설정이 안되므로 1 process 모드로 수정&lt;/p&gt;&lt;p&gt;&lt;strike&gt;push시 모든 ID가 access 불가능한 문제 수정 -&amp;gt; read권한 / write 권한을 따로 주는건 불가능한듯...&lt;/strike&gt; -&amp;gt; hg serve 가 아니라 hgweb.cgi 모드로 돌려야만 가능한것 같기도 하다. 차후 고려예정 일단 hg serve 모드에선 allow_push 에 * 외의 다른옵션을 주면 모든 push 가 차단된다.&lt;/p&gt;&lt;p&gt;각 저장소로의 web link 기능 추가&lt;/p&gt;&lt;p&gt;저장소 생성 기능 추가&lt;/p&gt;&lt;p&gt;저장소 등록해제 기능이 없다 =_=;; 추가!&lt;/p&gt;&lt;p&gt;https 이용가능하게 하기
&lt;/p&gt;&lt;p&gt;&lt;strike&gt;2개 이상의 저장소 구성&lt;/strike&gt;&lt;/p&gt;&lt;p&gt;&lt;strike&gt;2개 이상의 저장소에서 &amp;nbsp;서로 다른 인증 권한 사용&lt;/strike&gt;&lt;/p&gt;&lt;p&gt;서비스로 등록&lt;/p&gt;&lt;p&gt;서버 상태 모니터링&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18px; &quot;&gt;버전정보&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18px; &quot;&gt;---------------------------------------------------------------------&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14px; &quot;&gt;01-25-2012 v0.0.3&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; * 소소한 문제점 수정.&lt;/p&gt;&lt;p&gt;&amp;nbsp; * 웹페이지 링크 제거 -&amp;gt; 간단 서버정보창 추가&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14px; &quot;&gt;01-25-2012 v0.0.2&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; * 2개이상의 저장소를 구성 할 수 있도록 수정&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14px; &quot;&gt;&lt;span style=&quot;font-size: 12px; &quot;&gt;&amp;nbsp; * 2개 이상의 저장소에서 서로 다른 인증을 할 수 있도록 수정&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14px; &quot;&gt;&lt;span style=&quot;font-size: 12px; &quot;&gt;&amp;nbsp; * NginX, Mercurial 설정파일을 직접 수정하지 않고 자체 정보에서 Generate 하도록 수정&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14px; &quot;&gt;&lt;span style=&quot;font-size: 12px; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14px; &quot;&gt; 01-10-2012 v0.0.1&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; * 초기버전( NginX 1.0.11, Mercurial 2.0.2)&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>DLLMain 에서 Thread관련 이벤트 안받기</title>
      <id>http://www.lunapiece.net/27332</id>
      <published>2012-01-04T15:53:52+09:00</published>
      <updated>2012-01-04T15:53:52+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27332"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27332#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;DLLMain에서&amp;nbsp;DisableThreadLibraryCalls 를 호출 해 주면된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DLL_THREAD_ATTCH와&amp;nbsp;DLL_THREAD_DETACH를 받지 않고 넘어갈 수 있다.&lt;/p&gt;&lt;p&gt;메모리 점유율이 조금 줄어든다고 한다(괜히 case 에 return 처리할 필요 없으니 편하기도 하다)&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>새해다 ...</title>
      <id>http://www.lunapiece.net/27324</id>
      <published>2011-12-31T22:14:10+09:00</published>
      <updated>2011-12-31T22:14:10+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27324"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27324#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;


뭐 업다 18 ㅜㅜ&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Trac, Mantis, Redmine + SVN 소스 한글 깨짐</title>
      <id>http://www.lunapiece.net/27283</id>
      <published>2011-12-20T12:22:05+09:00</published>
      <updated>2012-01-27T17:35:50+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27283"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27283#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Trac, Mantis, Redmine 은 기본적으로 UTF-8을 사용한다.&lt;/p&gt;&lt;p&gt;그러나 VC++은 소스를 ascii로 저장하기 때문에 저장소 연동을 하면 소스에서 한글이 다 박살난 채로 보이게 된다.&lt;/p&gt;&lt;p&gt;이것을 해결하기위해서는 소스를 UTF-8로 저장 해야 되는데, 저장시 자동으로 UTF-8로 변환을 하는 매크로가 있다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MacroIDE -&amp;gt; EnviromentEvents에&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Imports System.IO&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;&lt;/p&gt;&lt;p&gt;Sub MakeUTF8File(ByVal path As String)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim input As New FileStream(path, FileMode.Open)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &apos;Check BOM&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim isUTF8 As Boolean = (input.ReadByte = &amp;amp;HEF And input.ReadByte = &amp;amp;HBB And input.ReadByte = &amp;amp;HBF)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; input.Close()&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; If (Not isUTF8) Then&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim s As String&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s = File.ReadAllText(path, System.Text.Encoding.Default)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File.WriteAllText(path, s, System.Text.Encoding.UTF8)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; End If&lt;/p&gt;&lt;p&gt;End Sub&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Public Sub DocumentEvents_DocumentSaved(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentSaved&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim path As String = Document.FullName&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; MakeUTF8File(path)&lt;/p&gt;&lt;p&gt;End Sub&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;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;PS. trac은 지금 안 쓰고있어 확인이 안되는데 redmine 은 그냥 소스 인코딩을 추가해주면 간단히 해결된다 (...) 걍 euc-kr 등록해두자&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>MultiMedia Timer 의 Timer 해상도의 비밀</title>
      <id>http://www.lunapiece.net/27266</id>
      <published>2011-12-14T10:18:47+09:00</published>
      <updated>2011-12-14T10:18:47+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27266"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27266#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;멀티미디어 타이머를 시작하기 위해 timeSetEvent 를 호출하면&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/266/027/ba512d5c5c4b883de377e8538ae38272.png&quot; alt=&quot;1.png&quot; class=&quot;iePngFix&quot; width=&quot;947&quot; height=&quot;535&quot; style=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/266/027/504c0e75644a4dd3d4b94fcffe390804.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;771&quot; height=&quot;1561&quot; style=&quot;&quot; /&gt;




&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결과적으로 timeBeginPeriod 가 호출된다.&lt;/p&gt;&lt;p&gt;멀티미디어 타이머 해상도의 비밀은 timeBeginPeriod 이었던것!&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Intel Cilk plus And SampleCode - Parallel Programming</title>
      <id>http://www.lunapiece.net/27248</id>
      <published>2011-11-22T18:22:35+09:00</published>
      <updated>2011-11-22T21:01:03+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27248"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27248#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Cilk plus 자료와 Sample Code&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Visaul Studio Exception 발생시 해결방법</title>
      <id>http://www.lunapiece.net/27236</id>
      <published>2011-11-09T21:55:52+09:00</published>
      <updated>2011-11-09T23:25:39+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27236"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27236#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;div&gt;VS2010에서 코드를 치려고 하면 아래와 같은 팝업이 뜨면서 툴이 제대로 동작 하지 않는 경우가 있다.&lt;/div&gt;&lt;div&gt;(주로 빨간줄 잘못긋기, 인텔리센스 맛가기 등등 ...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/236/027/c6c93b50610f98a2195b9ca80f90d5b2.PNG&quot; alt=&quot;Visual Studio has encountered an exception.PNG&quot; class=&quot;iePngFix&quot; width=&quot;487&quot; height=&quot;234&quot; style=&quot;&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Visual Studio has encountered an exception. This may be caused by an extension. You can get more information by running the application together with the /log parameter on the command line, and then examining the file &apos;C:\Users\USERNAME\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml&apos;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이경우 레지스트리 수정으로 해결이 가능 한데,&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;32Bit의 경우&lt;/div&gt;&lt;div&gt;[HKEY_CLASSES_ROOT\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]&lt;/div&gt;&lt;div&gt;의 Default 값을&amp;nbsp;&lt;/div&gt;&lt;div&gt;&quot;C:\Program Files\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll&quot; 으로&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;64Bit의 경우&lt;/div&gt;&lt;div&gt;[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]&lt;/div&gt;&lt;div&gt;의 Default 값을&amp;nbsp;&lt;/div&gt;&lt;div&gt;&quot;C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll&quot; 으로 수정한다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;만약 기본폴더가 아닌 다른 곳에 설치 했다면 적당히 값 조절해라.&lt;/div&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>mongodb 2.0.0 Precompiled C++ Client Driver</title>
      <id>http://www.lunapiece.net/27113</id>
      <published>2011-10-17T20:43:00+09:00</published>
      <updated>2011-10-17T20:43:00+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27113"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27113#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;VC++ 2010 Sp1, x64&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=27116&amp;amp;sid=3276d8ea106fff8c9d735febe6a8be5a&quot;&gt;mongoclient_64.7z&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>Https 프로토콜 스니퍼 Fiddler.</title>
      <id>http://www.lunapiece.net/27103</id>
      <published>2011-10-07T11:41:23+09:00</published>
      <updated>2011-10-07T11:59:21+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27103"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27103#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.fiddler2.com/fiddler2/&quot;&gt;http://www.fiddler2.com/fiddler2/&lt;/a&gt;


&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>멀티원격 데스크탑 RDP Connection Manager</title>
      <id>http://www.lunapiece.net/27101</id>
      <published>2011-09-30T13:08:34+09:00</published>
      <updated>2011-09-30T13:08:34+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27101"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27101#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=21101&quot;&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=21101&lt;/a&gt;


&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
   <entry>
      <title>VMWare 8 Exclusive Mode Full Screen (전체화면)</title>
      <id>http://www.lunapiece.net/27098</id>
      <published>2011-09-27T14:29:13+09:00</published>
      <updated>2011-09-27T14:29:13+09:00</updated>
      <link rel="alternate" type="text/html" href="http://www.lunapiece.net/27098"/>
      <link rel="replies" type="text/html" href="http://www.lunapiece.net/27098#comment"/>
      <author>
         <name>Lyn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;VMWare 8 에서는 7까지와 다르게 Exclusive Mode 로 들어가면 FullScreen 이 되는게 아니라, 화면 가운데에 위치 하게 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;뭐 일반적으론 문제될 게 없지만, 전체화면으로 돌던 저해상도 프로그램을 돌리긴 귀찮죠...&lt;/p&gt;&lt;p&gt;근데 이게 안되는게 아니라 옵션으로 추가된겁니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Edit -&amp;gt; Preferences -&amp;gt; Display 에서&lt;/p&gt;&lt;p&gt;2번째 옵션인 Stretch guest 를 선택 해 주면 풀 스크린으로 뜹니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://www.lunapiece.net/files/attach/images/101/098/027/ac288617e10d705408ed3e40b3bc05e4.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;579&quot; height=&quot;485&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
</feed> 

