<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>PROGRAM PARK</title>
    <link>https://programpark.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 29 May 2026 09:16:56 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>HisPark</managingEditor>
    <image>
      <title>PROGRAM PARK</title>
      <url>https://t1.daumcdn.net/cfile/tistory/177CA7375073DC1A1C</url>
      <link>https://programpark.tistory.com</link>
    </image>
    <item>
      <title>Class 내부 Thread  basic...</title>
      <link>https://programpark.tistory.com/11010</link>
      <description>&lt;P&gt;&lt;SPAN class=kwd&gt;class&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;MyClass&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;SPAN class=pun&gt;{&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=kwd&gt;static&lt;/SPAN&gt;&lt;SPAN class=pln&gt; DWORD WINAPI &lt;/SPAN&gt;&lt;SPAN class=typ&gt;StaticThreadStart&lt;/SPAN&gt;&lt;SPAN class=pun&gt;(&lt;/SPAN&gt;&lt;SPAN class=kwd&gt;void&lt;/SPAN&gt;&lt;SPAN class=pun&gt;*&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;Param&lt;/SPAN&gt;&lt;SPAN class=pun&gt;)&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;{&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;MyClass&lt;/SPAN&gt;&lt;SPAN class=pun&gt;*&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;This&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;=&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;(&lt;/SPAN&gt;&lt;SPAN class=typ&gt;MyClass&lt;/SPAN&gt;&lt;SPAN class=pun&gt;*)&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;Param&lt;/SPAN&gt;&lt;SPAN class=pun&gt;;&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=kwd&gt;return&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;This&lt;/SPAN&gt;&lt;SPAN class=pun&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class=typ&gt;ThreadStart&lt;/SPAN&gt;&lt;SPAN class=pun&gt;();&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;}&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD &lt;/SPAN&gt;&lt;SPAN class=typ&gt;ThreadStart&lt;/SPAN&gt;&lt;SPAN class=pun&gt;(&lt;/SPAN&gt;&lt;SPAN class=kwd&gt;void&lt;/SPAN&gt;&lt;SPAN class=pun&gt;)&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;{&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=com&gt;// Do stuff&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;}&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=kwd&gt;void&lt;/SPAN&gt;&lt;SPAN class=pln&gt; startMyThread&lt;/SPAN&gt;&lt;SPAN class=pun&gt;()&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;{&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD &lt;/SPAN&gt;&lt;SPAN class=typ&gt;ThreadID&lt;/SPAN&gt;&lt;SPAN class=pun&gt;;&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;CreateThread&lt;/SPAN&gt;&lt;SPAN class=pun&gt;(&lt;/SPAN&gt;&lt;SPAN class=pln&gt;NULL&lt;/SPAN&gt;&lt;SPAN class=pun&gt;,&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=lit&gt;0&lt;/SPAN&gt;&lt;SPAN class=pun&gt;,&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=typ&gt;StaticThreadStart&lt;/SPAN&gt;&lt;SPAN class=pun&gt;,&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;(&lt;/SPAN&gt;&lt;SPAN class=kwd&gt;void&lt;/SPAN&gt;&lt;SPAN class=pun&gt;*)&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=kwd&gt;this&lt;/SPAN&gt;&lt;SPAN class=pun&gt;,&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=lit&gt;0&lt;/SPAN&gt;&lt;SPAN class=pun&gt;,&lt;/SPAN&gt;&lt;SPAN class=pln&gt; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class=typ&gt;ThreadID&lt;/SPAN&gt;&lt;SPAN class=pun&gt;);&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=pun&gt;}&lt;/SPAN&gt;&lt;SPAN class=pln&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;SPAN class=pun&gt;};&lt;/SPAN&gt;&lt;/P&gt;</description>
      <category>Program C/C++</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/11010</guid>
      <comments>https://programpark.tistory.com/11010#entry11010comment</comments>
      <pubDate>Fri, 10 May 2013 16:09:24 +0900</pubDate>
    </item>
    <item>
      <title>너구리?</title>
      <link>https://programpark.tistory.com/11003</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 360px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/03033C4E50ACBB4F31&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F03033C4E50ACBB4F31&quot; width=&quot;360&quot; height=&quot;203&quot; filename=&quot;64112046jw1dyyzd6lolzg[1].gif&quot; filemime=&quot;image/gif&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <category>FreeBoard</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/11003</guid>
      <comments>https://programpark.tistory.com/11003#entry11003comment</comments>
      <pubDate>Wed, 21 Nov 2012 20:30:28 +0900</pubDate>
    </item>
    <item>
      <title>Windows8 개발환경..</title>
      <link>https://programpark.tistory.com/11001</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱개발이한창유행이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;물론모바일생태계전반전인유행은아니더라도&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Microsoft &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;기술을하는사람들에게는큰관심대상이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;운영체제가탑재되는테블릿도출시가되고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, New iPad &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;보다하드웨어스팩이더좋은테블릿출시도준비중인곳이많다고들었다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;새로운마켓이열리는만큼테블릿사용자에게는새로운재미를선사해줄것은분명한사실일것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;! &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;개발을위해몇가지알아야할구조적인개념이나유의사항정도만언급하기위해글을써나간다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. C++/CX, C#,VB&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;는&lt;/SPAN&gt;&lt;A href=&quot;http://ko.wikipedia.org/wiki/XAML&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;XAML(eXtensible Application Markup Language)&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;를이용하여&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt; WPF &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;데스크탑응용프로그램처럼프로그래밍을할수있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;그리고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt; HTML/JavaScript &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;조합으로웹개발환경과유사하게개발을할수있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;아마대부분의&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt; Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;스타일앱개발자라면알고있는내용일것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;그리나이포스팅에서는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt; C++/CX&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;와&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt; C# &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;개발언어를기준으로아티클내용을채울것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 16pt&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱런타임관점의구조&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1569853A509762B110&quot; /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: white; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;[&lt;/SPAN&gt;&lt;A href=&quot;http://www.google.co.kr/url?source=imglanding&amp;amp;ct=img&amp;amp;q=http://www.identitymine.com/forward/wp-content/uploads/2011/09/Win8Platform.png&amp;amp;sa=X&amp;amp;ei=d9lNUKH9LO72iQKs8IDgCg&amp;amp;ved=0CAsQ8wc&amp;amp;usg=AFQjCNELlmOu_qsffJRhtt0MBQmKajynsA&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕&quot;&gt;이미지링크&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;] &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://en.wikipedia.org/wiki/Windows_Runtime&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c; FONT-SIZE: 10pt&quot;&gt;WinRT(Windows Runtime)&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;플랫폼의구조적아키텍처이미지이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;기존&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows Desktop &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;응용프로그램환경과다른점은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT APIs &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가중간에끼어있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱의핵심이며&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, Windows &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;로시작하는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Namespace&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;는모두&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;C&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;#,VB &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;개발환경은그나마편리한&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Library Subset &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;을제공한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. .NET Framework&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;의최소화버전이라고보면된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이를&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; .NET for Windows Store apps &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이라고부르며&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;위의이미지에는이내용이빠져있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;C++/CX&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;는딱잘라&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; .NET for Windows Stores apps&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가제공되지않는다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. .NET &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;개발자라면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; System(mscorlib.dll) &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;으로시작하는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Namespace &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가얼마만큼편한지알텐데&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Library Subset&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이제공되지않으니다른방법을사용해야한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;쉬운예로&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; HttpClient&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;와같은클래스도&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++/CX&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; MsXml COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴포넌트를이용하는편이낫다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;그렇다고모든&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++ &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;라이브러리를사용할수있는것도 아니다. 이 부분에서 특히 라이브러리의 제한이 있으므로 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;C:\Program Files (x86)\Windows Kits\8.0\Include\shared &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;폴더에서사용가능한&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Header &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;파일을확인해보도록하자&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;만약&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Header &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;파일의&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; pragma &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;선언이&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Dektop Family &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;라면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱에서는사용할수없는라이브러리이며&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;상당한&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Header&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;들이&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Desktop Family&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에속하여&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;당장&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; .NET for Windows Stores apps &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;만큼쓸만한클래스들이없다는것이조금슬프다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;다만&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;좋은소식이라면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt; C++ boost &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;Library &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;등이&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++/CX &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;용으로컨버전을시도하는분들이많으므로&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;조금만기다려보면쓸만한라이브러리들이대거출연할것으로보인다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/18123F43509762B10A&quot; /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: white; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;더불어&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C#, C++ &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;개발자들도알고있어야하는것중에하나가&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴포넌트기반의라이브러리라는것쯤은들어보았을것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;그래서&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱개발자들은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; COM&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에대한개념과더나아가이를구현할수있다면더좋다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;특히&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C#, VB &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴포넌트를만드는것은몇가지지켜야할제약이있으므로다음의링크를꼭참고하는것이좋다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-COLLAPSE: collapse&quot; border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style=&quot;WIDTH: 634px&quot;&gt;&lt;/COLGROUP&gt;
&lt;TBODY vAlign=top&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #a3a3a3 1pt solid; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: #a3a3a3 1pt solid; BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-TOP: 5px&quot; vAlign=middle&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: white&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;C# 및 Visual Basic으로 Windows Runtime 구성요소만들기&lt;/SPAN&gt;&lt;A href=&quot;http://msdn.microsoft.com/ko-kr/library/windows/apps/br230301.aspx&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;http://msdn.microsoft.com/ko-kr/library/windows/apps/br230301.aspx&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;대신&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++/CX&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴포넌트를만드는것이오히려더간단하다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;앞서말했다시피&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴포넌트기반이지만&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;기존&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++ &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴포넌트를만드는만큼어렵지가않다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. C++ COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;구현의첫번째는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; IUnknown &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인터페이스를구현하는것이지만&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, WinRT &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서는 Iunknown을 상속하는 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;IInspectable &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인터페이스가더 중요하다. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;IInspectable &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인터페이스는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++/CX&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;로개발된응용프로그램이런타임중해당클래스의정보를제공하기위한인터페이스이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;물론기존&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++ &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서도런타임상클래스정보가필요하여이를직접구현하는방법도있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;하지만&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++/CX&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;의&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; IInspectable &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인터페이스는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++/CX &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴파일과정에서자동으로구현을해준다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이는곧&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; IUnknown &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인터페이스까지자동으로구현해준다고보면된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;그렇기 때문에 Iu&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;nknown &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인터페이스의&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; AddRef, Release &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;메서드에대한객체수명주기를&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WeakReference &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;클래스를통해위임할수있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. WeakReference&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;를통해금방해제될수있는컴포넌트를가비지컬렉터대상이되도록지정한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;그러므로사용빈도가매우많고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;매번자원해제에대한비용이반복되는것은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WeakReference&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;로효과적으로객체수명주기를다룰수있게한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이러한&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; C++/CX&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에특별히제공되는라이브러리는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Microsoft.WRL Namespace&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에포함되어있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;아직이러한개념적인부분이어렵게느껴진다면월간마이크로소프트&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; 5&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;월호특집기사로기고한필자의다음의글부터참고바란다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-COLLAPSE: collapse&quot; border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style=&quot;WIDTH: 634px&quot;&gt;&lt;/COLGROUP&gt;
&lt;TBODY vAlign=top&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #a3a3a3 1pt solid; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: #a3a3a3 1pt solid; BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-TOP: 5px&quot; vAlign=middle&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: white&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;[월간마이크로소프트 5월호특집기사] C++ 매트로앱개발을위한 C++/CX 언어&lt;/SPAN&gt;&lt;A href=&quot;http://blog.powerumc.kr/378&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;http://blog.powerumc.kr/378&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 16pt&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱응용프로그램관점&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;짧게말해&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱개발은쉽다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. Visual Studio 2012&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서훌륭하게대부분이구현된템플릿을제공하기때문에&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;메서드중간중간원하는기능을추가하고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;클래스나&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; XAML &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;쯤만들면된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;다만&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이는만든다는것이쉽다는것이지응용프로그램구조적인측면에서는전혀쉽지않다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;먼저알아야할것이&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱페이지를상태관리할것인지&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;말것인지부터결정해야한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;상태관리를유지할필요가없다는것은웹개발&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;(ASP.NET/ASP/PHP/JSP) &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;와같은서버사이드개발환경과유사하다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;특히&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; IIS&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서부터&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; ASP.NET&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;까지연결되는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Application Pipeline&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;은매번의&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Request&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;마다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Pooling&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;된&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Thread&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가활성화되어서버랜더링을통해사용자에게&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; HTML Response&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;로전달이된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;TEXT-DECORATION: underline&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;1. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;상태관리를개별적으로유지하고싶다면&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;다음의두가지메서드를재정의하면된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;ASP&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;NETCustomControl&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;을구현해보았다면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;VIEWSTATE&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에상태유지를위해이런유사한코드를구현해야하는것을알것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/205AEF3A509762B135&quot; /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: white; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Frame.Navigate &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;메서드는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Page Type&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;을인자로받고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;매번새로운인스턴스를생성한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. (&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;구현을다르게한다면인스턴스를이용하도록할수도있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;.) &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;페이지의상태유지야위의메서드를재정의하는정도로끝낼수있지만&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;페이지에포함된&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; UserControl&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이있다면상황은달라진다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;독자마다구현하는방법은다르겠지만&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;효과적으로상태를관리하기위해&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; UserControl&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;은조금귀찮아지는존재이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인스턴스의재사용을위해자주사용하는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; UserControl&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에대한상태관리를 고민해야 하다니…&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; (&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;현재아티클은이내용이대해오픈소스제공으로효과적인방법을제안하도록필자는약속하겠다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;.) &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;TEXT-DECORATION: underline&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;2. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;상태관리를자동으로캐싱하고싶다면&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;상태관리를자동으로캐싱하는방법도매우쉽다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. Page.NavigationCacheMode &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;프로퍼티를&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Enabled &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;해주면된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;물론&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; XAML &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;코드에속성을추가해도된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;하지만아쉽게도&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Frame.Navigate &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;메서드를통해자동으로상태관리를하도록한&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Page&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;는새로운인스턴스가생성이된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;상태관리캐싱에대한조건은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; GoBack(), GoFoward() &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;와같은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Frame &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이동에대해서만유효하다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;조금더이해할수없는부분은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Page&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에포함된&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; UserControl &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;은상태관리캐싱대상에서제외된다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. (&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;물론&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가능하도록할수있지만개념적으로더깊게이해하고구현해야한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;.) &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;3. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;남발되는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; async/await&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에의한동기화문제&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱을사용하다가자주멈짓멈짓한다면분명사용자는짜증날것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;때문에&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; async / await &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;키워드를더욱자주사용하는편이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;그렇기때문에&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; UI &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;상태에대한비동기와컴포넌트나인스턴스메서드호출에대한비동기&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이둘모두정확하게&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Threading &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에대한지식이필요하고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;자유자재로&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Threading &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;을다룰수있다면더욱좋다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱에서가장많이발생하는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Threading &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;문제는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Thread &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;실행중인스턴스해제에대한동기화와&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Thread Cancel &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에대한동기화다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이문제를잘피하기위해서는클래스나라이브러리를만들때부터&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; async / await &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에대한고려가필요하다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;쉽게이야기하자면자주쓰지않는편이좋고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;써야할곳에써야한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이를잘판단하려면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Thread &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;동기화에대해적어도몇가지는반드시익히는것이좋다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. MSDN &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에아래의글들을한번정도꼭필독하기바란다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE style=&quot;BORDER-COLLAPSE: collapse&quot; border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style=&quot;WIDTH: 593px&quot;&gt;&lt;/COLGROUP&gt;
&lt;TBODY vAlign=top&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #a3a3a3 1pt solid; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: #a3a3a3 1pt solid; BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-TOP: 5px&quot; vAlign=middle&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: white&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;관리되는스레딩기본사항&lt;/SPAN&gt;&lt;A href=&quot;http://msdn.microsoft.com/ko-kr/library/hyz69czz&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;http://msdn.microsoft.com/ko-kr/library/hyz69czz&lt;/SPAN&gt;&lt;/A&gt;&lt;br /&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;스레딩(C# 및 Visual Basic) &lt;/SPAN&gt;&lt;A href=&quot;http://msdn.microsoft.com/ko-kr/library/ms173178(v=vs.110)&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;http://msdn.microsoft.com/ko-kr/library/ms173178(v=vs.110)&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 16pt&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱배포와라이브러리배포문제&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이부분은매우민감한부분이고조심스럽다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;실제&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows App Store&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서테스트할수없을뿐더러개발환경에서발생하는문제이므로&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;실제&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows App Store &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;를통해발생할수도있을가능성이있을것같다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;기반라이브러리나&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; DLL &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;구성요소등은공유메모리에로드가된다는것을알것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;특히이부분은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;컴포넌트에서민감하게다루는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; IUnknown &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;인터페이스의의미와일맥상통한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;즉&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, COM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;객체의참조카운트&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;(Reference Cout) &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;가&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; 0&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이되지않으면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;자원은해제되지않는다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;여기에서&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;COM&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;의가장고질적인문제가발생한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;바로&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt; DLL &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;지옥이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;. Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱의메모리위치는앱메모리영역이아닌공유되는메모리영역에위치하고있고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;, DLL Verserning &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이자유롭지못하다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;. .NET &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;처럼&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt; GAC(Global Assembly Cache)&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt; DLL &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;버전별로관리되지않는다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;따라서&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, WinRT &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;런타임라이브러리를개발하여배포된&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;앱이활성화상태일때새로운앱에서버전업된&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; WinRT &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;런타임라이브러리배포시에다른프로세스가점유하고있다는오류가발생한다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이는앱이초절전유휴상태에진입되어도마찬가지이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;이찌되었든개발환경에서는충분히발생된문제이니&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;차후&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows App Store&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;에서도발생할지는지켜보아야할것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 16pt&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 Windows Runtime &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;의재배포정책및업데이트&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;첫런타임라이브러리인만큼라이브러리코드가완벽하지는않을것이다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. .NET Framework&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;도&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; 1.0&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;부터&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; 4.5&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;까지버전업이되어왔는데과연&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; Windows 8 Windows Runtime&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;은어떻게버전업이될까&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;? &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;사용자의동의없이업데이트나패치는불가능하다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;Windows 8 Features Pack 1,2,3… &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;시리즈로업데이트가될까&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움&quot;&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;?&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;COLOR: #8c8c8c&quot;&gt;Windows 8 Service Pack 1,2,3… &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;시리즈로업데이트가될까&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;? &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;만약이렇게되면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;, Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;스타일앱간에호환성문제가발생할것이분명하다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;. Apple&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;의&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;iPhone&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;의모바일폰의운영체제업데이트가실시간으로&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;, &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;온라인으로이루어진다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;. Windows 8 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt; iPhone&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;의업데이트와차원이달라진다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;. WinRT&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;만지원하는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt; ARM &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;버전과기존의&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt; Windows 8 Desktop&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;을지원하는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt; x86 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;버전등몇가지의에디션이있다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;혹시이부분에대해서알고있는정보가있으면공유부탁드립니다&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Cambria Math; COLOR: #8c8c8c&quot;&gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #8c8c8c; FONT-SIZE: 9pt&quot;&gt;Posted by &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;POWERUMC 엄준일 (POWERUMC) &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;COLOR: white; FONT-SIZE: 10pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 맑은 고딕; COLOR: #8c8c8c&quot;&gt;출처&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; COLOR: #8c8c8c&quot;&gt;http://blog.powerumc.kr/trackback/390 &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <category>Program Visual C++</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/11001</guid>
      <comments>https://programpark.tistory.com/11001#entry11001comment</comments>
      <pubDate>Mon, 5 Nov 2012 15:54:42 +0900</pubDate>
    </item>
    <item>
      <title>Microsoft OS family tree</title>
      <link>https://programpark.tistory.com/11000</link>
      <description>&lt;P&gt;Microsoft OS family tree &lt;/P&gt;
&lt;P&gt;FullSize Image&amp;nbsp; &lt;A href=&quot;https://t1.daumcdn.net/cfile/tistory/1723843F507D301233&quot;&gt;https://t1.daumcdn.net/cfile/tistory/1723843F507D301233&lt;/A&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: left; CLEAR: both&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1280px; MARGIN-RIGHT: 10px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1723843F507D301233&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1723843F507D301233&quot; width=&quot;1280&quot; height=&quot;429&quot; filename=&quot;Neowin_vers3ion.png&quot; filemime=&quot;image/png&quot; style=&quot;MARGIN-RIGHT: 10px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;출처 http://www.neowin.net/news/trivia-tuesday-a-microsoft-family-tree&lt;/P&gt;</description>
      <category>Knowledge IT</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/11000</guid>
      <comments>https://programpark.tistory.com/11000#entry11000comment</comments>
      <pubDate>Tue, 16 Oct 2012 18:57:07 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트는 개발 세계를 지배할 수 있을까</title>
      <link>https://programpark.tistory.com/10999</link>
      <description>&lt;DIV class=&quot;clearfix postbyline&quot;&gt;
&lt;DIV class=datetime&gt;2012.10.11&lt;/DIV&gt;
&lt;DIV class=&quot;links writer&quot;&gt;Andrew C. Oliver | InfoWorld &lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV class=&quot;news-content linebrk mb10 clearfix&quot;&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;지난 1995년 넷스케이프(Netscape)가 자사의 브라우저 임베디드형 스크립트(Script) 언어의 새로운 브랜드를 찾고 있을 때 업체는 썬마이크로시스템즈로부터 '자바'(Java)에서 변형된 이름에 대한 라이선스를 취득했다. 이렇게 자바스크립트(JavaScript)라는 이름이 생겨나면서 (자바스크립트와 자바의 가까운 관계로 인해) 오해가 생기게 됐고 일부 개발자들은 여전히 혼란스러워하고 있다. 이제 이런 식의 브랜드명 공유 사례는 다시는 나타나지 않을 것이다. 썬을 인수한 오라클 경영진 역시 마찬가지다.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;시간이 지나면서 브라우저 내 자바 사용은 시들해졌고 구글이 안드로이드로 클라이언트용 자바를 구제하지 않았다면 모바일 기기에서 조차도 그 자리를 잃었을 것이다. 자바미(JavaME)는 기술적인 대참사, 부정한 마케팅, 미심쩍은 가치 제안 등 문제투성이였다. 거기에 또 무엇이 있을까. 한편 호환성 문제를 일으키려는 마이크로소프트(MS)의 엄청난 노력에도 불구하고 자바스크립트는 애플리케이션 개발자들과 플랫폼 개발자들이 선호하는 크로스 플랫폼 언어가 되었다.
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 16px&quot;&gt;자바스크립트, 서버를 점령하다&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;본래 클라이언트사이드(client-side, 서버가 아닌 클라이언트에서 실행되는) 언어인 자바스크립트는 서버 부문으로 빠르게 진격해 나갔다. MS는 1996년 액티브 서버 페이지스(Active Server Pages)를 통해 자사의 J스크립트 아류를 제시했다. 약 10년 전, 필자는 XML 개발 단계에 따라 코쿤(Cocoom)이라는 이름의 아파치(Apache) 프로젝트를 수행했었다. 해당 프로젝트의 책임자이자 필자의 멘토였던 스테파노 마조치는 자바스크립트를 일종의 제어 언어로 코쿤에 포함시키려 시도했다. 필자는 그가 제정신이 아니라고 생각했지만 결국 XML 기반의 동적 웹 사이트를 개발하는 것보다 더 좋은 아이디어였던 것으로 드러났다.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;그렇게 탄생한 리노(Rhino)는 자바 가상머신을 위한 최초의 내장형 스크립트 언어였다. 본래 넷스케이프가 포기한 브라우저를 자바로 재개발하기 위한 것이었지만 대부분 서버사이드 용도로 사용되었다. 이런 추세는 클라우드 전반에 걸쳐 애플리케이션 개발언어로 Node.js가 적용되는 오늘날까지 이어지고 있다.
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 16px&quot;&gt;모바일부터 데이터베이스까지 자바스크립트 '전성시대'&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;자바스크립트는 오랫동안 거대한 골칫거리로 조롱을 당했다. 이런 이미지는 대부분 호환성이 떨어지는 형편없는 브라우저 때문에 발생한 것이다. 그렇다. 문제는 MS다. 인터넷 익스플로러(IE)는 여전히 엉망진창이다. 그럼에도 불구하고 MS에 감사하고 싶다. 왜냐하면 IE의 문제들 때문에 '상당수의' 현대적인 웹 사이트가 자바스크립트 기반의 AJAX로 개발될 수 있었기 때문이다.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;자바스크립트 라이브러리인 '제이쿼리'(JQuery)는 플래시, 클라이언트사이드 자바는 물론 브라우저에 임베드디하려는 대부분의 기술들을 집어삼키는 괴물이 됐다. 앱셀러레이터(Appcelerator), 폰갭(PhoneGap), 그리고 이와 유사한 프레임워크들도 자바스크립트 프로그래밍의 한 요소가 되는 크로스 플랫폼 모바일 개발을 지원한다. 오직 망상에 사로잡힌 애플의 추종자들 만이 80년대에나 유행했던 오브젝트-C(Objective-C)를 부여잡고 화려했던 시절을 추억하고 있다.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;어도비는 ECMA스크립트(ECMAScript)라고 불리는 표준화된 자바스트립트 버전을 기반으로 액션스크립트(ActionScript)를 내놓았다. 자바스크립트 없이도 괜찮은 개발 툴을 만들 수 있게 된 것이다. 그러나 안타깝게도 어도비는 이 ECMA스크립트를 불운한 개발툴 '플렉스(Flex)', 이상한 플랫폼 '플래시'와 통합해 버렸다. 문자 그대로 자바스크립트의 표기법인 JSON(JavaScript Object Notation)은 개발 언어 독립적인 데이터 형식으로서 데이터 전송용 XML을 대체하고 있다. 심지어 SOAP/웹서비스 업체들은 JSON을 더 지원하는 경향이 있다. 브라우저는 물론 다른 클라이언트에서도 화면을 보여주는 것이 더 빠르고 쉽기 때문이다. 게다가 SOAP의 헤더(Header)를 읽고 싶어하는 사람이나 있을까.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;한편 NoSQL의 대히트로 오라클 주식에 대한 투자가치가 떨어졌고 동시에 문서 데이터베이스가 성장했다. 몽고DB(MongoDB)와 코치베이스 2.0(Couchbase 2.0) 등 대부분의 문서 데이터베이스는 주요 데이터베이스 포맷으로 무엇을 사용할까. 당연히 JSON이다!
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 16px&quot;&gt;부전승의 주인공은 누구?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;결국 이 모든 것을 종합해 보면 우리는 웹 또는 모바일 애플리케이션을 개발할 때 자바스크립트 이외에 다른 언어가 전혀 필요없다. 자바스크립트에서 제이쿼리 라이브러리(물론, HTML 마크업를 사용해)를 이용해 클라이언트를 개발하고 JSON으로 서버와 주고 받고 몽고DB 문서 데이터베이스에서 데이터를 JSON으로 저장하고 쿼리 처리할 수 있으며 이 모든 것을 클라우드를 통해 서비스할 수 있다. 경영 입장에서 보면 이것은 자바, 루비, 닷넷 개발자들보다 저렴한 일련의 개발자를 채용해 활용할 수 있다는 의미이다.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;이런 접근 방식에 허점은 없을까. 물론 있다. 자바스크립트 기반의 프레임워크인 Node.js가 대표적이다. Node.js는 아직 다듬어지지 않았다. 이것은 프로세스당 단일 쓰레드(Thread)즉 단일 프로세서 코어를 사용하고 별도로 복수의 프로세스를 할당할 수 있는 옵션을 지원한다. 그러나 수직으로 확장되지 않기 때문에 더 큰 장비를 구입해도 성능이 크게 향상되지 않을 수 있는 한계가 있다. (단, 더 많은 인스턴스를 간단하게 추가 할당할 수 있는 클라우드 환경에서는 이런 문제가 중요하지 않을 수 있다)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;결국 자바스크립트는 만능이 아니다. 상황에 따라 무엇이 적절한 지 스스로 판단해야 한다. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;필자는 관리자로서 제이쿼리, Node.js를 다룰 수 있고 몽고DB에서 가벼운 데이터베이스 작업을 처리할 수 있는 개발자를 선호한다. 그러나 개발자 입장에서는 IE에 대한 안 좋은 기억 때문에 자바스크립트를 이용한 개발을 꺼리는 것도 사실이다. 특히 프로젝트 리더로서 많은 자바스크립트 개발자들뿐만 아니라 귀중한 데이터베이스를 위해서라도 꺼려지는 것도 사실이다.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style=&quot;FONT-SIZE: 14px&quot;&gt;필자는 현재 어도비가 포기한 플랙스 플랫폼용 액션스크립트에 충분한 시간을 투자하면서 그 효용성을 확인하고 있다. 문서 데이터베이스에서 자바스크립트로 개발한 경험이 큰 도움이 되고 있다. 하지만 자바스크립트와 같은 골치덩어리를 프런트 엔드(Front End)부터 채택해 이를 중간계층까지 사용하는 것이 가능할까. 필자는 여전히 고민중이다. 
&lt;P&gt;=출처&amp;nbsp;&lt;A href=&quot;http://www.itworld.co.kr/news/78199&quot;&gt;http://www.itworld.co.kr/news/78199&lt;/A&gt;&lt;/P&gt;editor@idg.co.kr&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <category>Program Web</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/10999</guid>
      <comments>https://programpark.tistory.com/10999#entry10999comment</comments>
      <pubDate>Fri, 12 Oct 2012 16:34:39 +0900</pubDate>
    </item>
    <item>
      <title>ACM 오디오 프로그래밍</title>
      <link>https://programpark.tistory.com/10998</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;STRONG&gt;ACM 오디오 프로그래밍&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt;윈도우 환경에서 오디오 프로그래밍은 쉽지가 않다. 쉽지가 않다고 하는 것은 비디오나 이미지에 비해서 어렵다는 이야기이다.&lt;br /&gt;보통 비디오라고 하면 DirectShow 기반으로 개발하며, 간혹 다른 것도 사용하지만..&lt;br /&gt;이미지하면 GDI나 DirectDraw등을 이용하게 된다. 혹은 다른 이미지 라이브러리를 사용...&lt;br /&gt;오디오 역시 DirectShow 기반으로 하면 되지만 ACM)Audio Compression Manager)이라는 SDK가 있다. 이곳에서 오디오 인코딩, 디코딩 및 여러 효과를 적용할 수 있다.&lt;br /&gt;&lt;br /&gt;그러나 윈도우 기반 오디오 코덱으로 작업할 수 있는 음질 한계가 있다. 특히 MP3인 경우는 기본 설치된 환경에 MP3 압축은 56KHz이하만 가능하다. WMP10버전 이상을 설치하게 되면 고품질 MP3까지 무료로 인코딩할 수 있다.&lt;br /&gt;&lt;br /&gt;개인이라면 무료 인코더/디코더를 사용하거나 불법으로 설치가능하겠지만, 개발하는 입장에서는 라이센스 비용과 범위가 걸리게 된다. 가급적이면 윈도우 내에서 해결하는게 차후 개발에 따른 비용이 감소하기 때문이다. 그리고 무료 인코더/디코더도 라이센스를 자세히 읽어봐야되는데 귀찮아서 일단 차후에 고려하기 했다.&lt;br /&gt;&lt;br /&gt;국내에서 오디오관련 프로그래밍을 물오볼수 있는 포럼같은 것이 거의 없다. 예전에 Directshow가 있던것 같은데... 기억이... 지금은 찾아도 찾기 힘드네. ㅡ.ㅡㅋ&lt;br /&gt;데브피아에서 vc 마을에 가면 어느정도 도움이 될 수 있다.&lt;br /&gt;&lt;br /&gt;여기서는 ACM를 이용한 오디오 프로그래밍을 다룰 것이다. 기본적인 처리절차를 볼 것이고 나머지 추가 사항을 살펴보겠다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;ACM 변환 과정&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;아래는 ACM에서 오디오 변환시 사용되는 기본적인 함수들이다. 호출되는 순으로 나열했다.&lt;br /&gt;&lt;br /&gt;acmDriverOpen(...); // 원하는 오디오 드라이버 로드 (생략 가능)&lt;br /&gt;acmSuggest(...); // ACM에서 변한시 제안하는 포멧 획득( 생략가능)&lt;br /&gt;acmStreamOpen(...); // 스트림 열기&lt;br /&gt;acmStreamSize(...); // Source 혹은 destionation 버퍼 크기 얻기&lt;br /&gt;acmStreamPrepareHeader(...); // 변환위한 헤더 로드&lt;br /&gt;acmStreamConvert(...); // 변환 (선택적으로 모든 데이터 처리위해 반복가능)&lt;br /&gt;acmStreamClose(...); // 열어진 스트림 닫기&lt;br /&gt;acmDriverClose(...); // 로드된 드라이버 종료 (생략가능)&lt;br /&gt;&lt;br /&gt;각각의 함수 설명은 MSDN을 참고하기를 바란다.&lt;br /&gt;위의 함수를 사용한 예제는 &lt;A href=&quot;http://david.weekly.org/code/mp3acm.html&quot;&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;http://david.weekly.org/code/mp3acm.html&lt;/SPAN&gt;&lt;/A&gt;에서 참고했다.&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;[열기] ACM 변환 예제 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#include &amp;lt;windows.h&amp;gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#include &amp;lt;stdio.h&amp;gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#include &amp;lt;assert.h&amp;gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#include &amp;lt;mmreg.h&amp;gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#include &amp;lt;msacm.h&amp;gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#define MP3_BLOCK_SIZE 522 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#define SOURCE_MP3 &quot;C:\\audiograbber\\At The Club Last Night\\At_The_Club_Last_Night_-_Haven't_You_Heard.mp3&quot; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#define OUTPUT_PCM_FILE &quot;c:\\dump.pcm&quot; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int g_mp3Drivers = 0; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;BOOL CALLBACK acmDriverEnumCallback( HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport ){ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;if( fdwSupport &amp;amp; ACMDRIVERDETAILS_SUPPORTF_CODEC ) { &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;MMRESULT mmr; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;ACMDRIVERDETAILS details; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;details.cbStruct = sizeof(ACMDRIVERDETAILS); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmDriverDetails( hadid, &amp;amp;details, 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;HACMDRIVER driver; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmDriverOpen( &amp;amp;driver, hadid, 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int i; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;for(i = 0; i &amp;lt; details.cFormatTags; i++ ){ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;ACMFORMATTAGDETAILS fmtDetails; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;ZeroMemory( &amp;amp;fmtDetails, sizeof(fmtDetails) ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;fmtDetails.cbStruct = sizeof(ACMFORMATTAGDETAILS); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;fmtDetails.dwFormatTagIndex = i; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmFormatTagDetails( driver, &amp;amp;fmtDetails, ACM_FORMATTAGDETAILSF_INDEX ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;if( fmtDetails.dwFormatTag == WAVE_FORMAT_MPEGLAYER3 ){ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OutputDebugString( L&quot;Found an MP3-capable ACM codec: &quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OutputDebugString( details.szLongName ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OutputDebugString( L&quot;\n&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g_mp3Drivers++; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmDriverClose( driver, 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return true; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;HACMSTREAM g_mp3stream = NULL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;convertMP3(){ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;MMRESULT mmr; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// try to find an MP3 codec &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;acmDriverEnum( acmDriverEnumCallback, 0, 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;if(g_mp3Drivers == 0){ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;OutputDebugString( L&quot;No MP3 decoders found!\n&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return E_FAIL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// find the biggest format size &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;DWORD maxFormatSize = 0; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmMetrics( NULL, ACM_METRIC_MAX_SIZE_FORMAT, &amp;amp;maxFormatSize ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// define desired output format &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LPWAVEFORMATEX waveFormat = (LPWAVEFORMATEX) LocalAlloc( LPTR, maxFormatSize ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;waveFormat-&amp;gt;wFormatTag = WAVE_FORMAT_PCM; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;waveFormat-&amp;gt;nChannels = 2; // stereo &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;waveFormat-&amp;gt;nSamplesPerSec = 44100; // 44.1kHz &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;waveFormat-&amp;gt;wBitsPerSample = 16; // 16 bits &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;waveFormat-&amp;gt;nBlockAlign = 4; // 4 bytes of data at a time are useful (1 sample) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;waveFormat-&amp;gt;nAvgBytesPerSec = 4 * 44100; // byte-rate &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;waveFormat-&amp;gt;cbSize = 0; // no more data to follow &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// define MP3 input format &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LPMPEGLAYER3WAVEFORMAT mp3format = (LPMPEGLAYER3WAVEFORMAT) LocalAlloc( LPTR, maxFormatSize ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wfx.cbSize = MPEGLAYER3_WFX_EXTRA_BYTES; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wfx.wFormatTag = WAVE_FORMAT_MPEGLAYER3; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wfx.nChannels = 2; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wfx.nAvgBytesPerSec = 128 * (1024 / 8); // not really used but must be one of 64, 96, 112, 128, 160kbps &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wfx.wBitsPerSample = 0; // MUST BE ZERO &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wfx.nBlockAlign = 1; // MUST BE ONE &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wfx.nSamplesPerSec = 44100; // 44.1kHz &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;fdwFlags = MPEGLAYER3_FLAG_PADDING_OFF; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;nBlockSize = MP3_BLOCK_SIZE; // voodoo value #1 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;nFramesPerBlock = 1; // MUST BE ONE &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;nCodecDelay = 1393; // voodoo value #2 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3format-&amp;gt;wID = MPEGLAYER3_ID_MPEG; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;g_mp3stream = NULL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmStreamOpen( &amp;amp;g_mp3stream, // open an ACM conversion stream &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, // querying all ACM drivers &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LPWAVEFORMATEX) mp3format, // converting from MP3 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; waveFormat, // to WAV &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, // with no filter &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, // or async callbacks &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, // (and no data for the callback) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 // and no flags &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LocalFree( mp3format ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LocalFree( waveFormat ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;switch( mmr ) { &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;case MMSYSERR_NOERROR: &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;break; // success! &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;case MMSYSERR_INVALPARAM: &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( !&quot;Invalid parameters passed to acmStreamOpen&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return E_FAIL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;case ACMERR_NOTPOSSIBLE: &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( !&quot;No ACM filter found capable of decoding MP3&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return E_FAIL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;default: &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( !&quot;Some error opening ACM decoding stream!&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return E_FAIL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// MP3 stream converter opened correctly &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// now, let's open a file, read in a bunch of MP3 data, and convert it! &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// open file &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;FILE *fpIn = fopen( SOURCE_MP3, &quot;rb&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;if( fpIn == NULL ){ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( !&quot;can't open MP3 file!&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return E_FAIL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// find out how big the decompressed buffer will be &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;unsigned long rawbufsize = 0; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmStreamSize( g_mp3stream, MP3_BLOCK_SIZE, &amp;amp;rawbufsize, ACM_STREAMSIZEF_SOURCE ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( mmr == 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( rawbufsize &amp;gt; 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// allocate our I/O buffers &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LPBYTE mp3buf = (LPBYTE) LocalAlloc( LPTR, MP3_BLOCK_SIZE ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LPBYTE rawbuf = (LPBYTE) LocalAlloc( LPTR, rawbufsize ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// prepare the decoder &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;ACMSTREAMHEADER mp3streamHead; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;ZeroMemory( &amp;amp;mp3streamHead, sizeof(ACMSTREAMHEADER ) ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3streamHead.cbStruct = sizeof(ACMSTREAMHEADER ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3streamHead.pbSrc = mp3buf; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3streamHead.cbSrcLength = MP3_BLOCK_SIZE; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3streamHead.pbDst = rawbuf; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mp3streamHead.cbDstLength = rawbufsize; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmStreamPrepareHeader( g_mp3stream, &amp;amp;mp3streamHead, 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( mmr == 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// let's dump this data off to disk (for debug checking!) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;FILE *fpOut = fopen( OUTPUT_PCM_FILE, &quot;wb&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;if( fpOut == NULL ){ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( !&quot;can't output output PCM!&quot; ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return E_FAIL; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;while(1) { &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// suck in some MP3 data &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int count = fread( mp3buf, 1, MP3_BLOCK_SIZE, fpIn ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;if( count != MP3_BLOCK_SIZE ) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;break; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// convert the data &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmStreamConvert( g_mp3stream, &amp;amp;mp3streamHead, ACM_STREAMCONVERTF_BLOCKALIGN ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( mmr == 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// write the decoded PCM to disk &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;count = fwrite( rawbuf, 1, mp3streamHead.cbDstLengthUsed, fpOut ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( count == mp3streamHead.cbDstLengthUsed ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;}; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// clean up after yourself like a good little boy &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;fclose( fpIn ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;fclose( fpOut ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmStreamUnprepareHeader( g_mp3stream, &amp;amp;mp3streamHead, 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( mmr == 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LocalFree(rawbuf); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;LocalFree(mp3buf); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;mmr = acmStreamClose( g_mp3stream, 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;assert( mmr == 0 ); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;return S_OK; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;위의 예제를 변환 관련 정보가 고정된 값을 사용했다. 이 값들은 MP3 포멧에 따라서 변경해줘야한다. 이런 정보를 획득하기 위해서는 직접 MP3 파일을 파싱하거나, 혹은 IMediaType 인터페이스를 사용해서 획득할 수 있다. 이는 tag에 대한 정보를 가져오지 못하고, 오직 파일 포멧 정보만 얻을 수 있다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;파일 포멧 정보 알아내기&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;고정된 포멧이 아닌 상황에 따라 해당 파일에 대한 포멧을 획득해서 좀더 유연한 코드가 된다. 다음 링크의 예제가 IMediaType를 이용한 포멧정보 획득을 보여주고 있으니 참고하길 바란다. MSDN에서 IMediaType의 멤버함수를 보면 어떤 정보를 가져올 수 있는지 대충 알 수 있다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://dreamstorm.cafe24.com/cgi-bin/moin.cgi/DirectShow/IMediaDet%EB%A5%BC%EC%9D%B4%EC%9A%A9%ED%95%B4%EB%AF%B8%EB%94%94%EC%96%B4%EC%A0%95%EB%B3%B4%EC%9D%BD%EA%B8%B0&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; COLOR: blue; FONT-SIZE: 9pt; TEXT-DECORATION: underline&quot;&gt;DirectShow MediaDet를이용해미디어정보읽기&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;위의 예제에 의해서 get_StreamMediaType 함수에 의해서 MediaType을 획득할 수 있으면 우리는 포멧 정보를 다음과 같이 획득 할 수 있다.&lt;br /&gt;&lt;br /&gt;AM_MEDIA_TYPE media_type;&lt;br /&gt;//...&lt;br /&gt;det-&amp;gt;get_StreamMediaType(&amp;amp;media_type);&lt;br /&gt;//...&lt;br /&gt;WAVEFORMATEX *pAudioHeader = (WAVEFORMATEX *)media_type.pbFormat;&lt;br /&gt;&lt;br /&gt;위의 WAVEFORMAT에서 채널 수, 샘플 레이트 등등을 알 수 있다. 해당 구조체를 MSDN에서 살펴보면 다음과 같다.&lt;br /&gt;&lt;br /&gt;typedef struct { &lt;br /&gt;WORD wFormatTag; &lt;br /&gt;WORD nChannels; &lt;br /&gt;DWORD nSamplesPerSec; &lt;br /&gt;DWORD nAvgBytesPerSec; &lt;br /&gt;WORD nBlockAlign; &lt;br /&gt;} WAVEFORMAT; &lt;br /&gt;&lt;br /&gt;내부 변수 이름만 봐도 대충 어떤 것인지 쉽게 짐작할 수 있다.&lt;br /&gt;이렇게 획득한 정보를 이용해서 ACM 변환 과정시 acmStreamOpen 함수에 들어갈 source와 destination 포멧 정보를 입력할 수 있다.&lt;br /&gt;&lt;br /&gt;추가로 직접 MP3 포멧을 읽어서 정보를 획득하는 방법을 간략하게 보겠다. 아래 코드는 Alessandro Angeli의 포스팅에서 가져온 것이다. 아직 코드가 완성된 것이 아니기 때문에 그대로 사용해서는 안된다. 이외에 다른 곳에서도 다양한 코드들이 있으니 직접 찾아서 사용해보길 바란다.&lt;br /&gt;단지 어떤 방법으로 처리되는지에 대한 예제만 보인 것이다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;[열기] MP3 포멧 읽기 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#include &amp;lt;stdlib.h&amp;gt; &lt;br /&gt;#include &amp;lt;stdio.h&amp;gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;#define MPA_SYNC_CODE 0xFFE00000UL &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;struct { &lt;br /&gt;int major; &lt;br /&gt;int minor; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} versions[/* version */] = { {2,5}, {0,0}, {2,0}, {1,0}, }; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int layers[/* layer */] = { 0, 3, 2, 1, }; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;char *booleans[/* boolean */] = { &quot;no&quot;, &quot;yes&quot;, }; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int bitrates[4 /* version */][4 /* layer */][16 /* bitrate */] = { &lt;br /&gt;{ /* V2.5 */ &lt;br /&gt;/* L0 */ { 0, }, &lt;br /&gt;/* L3 */ { 0, }, &lt;br /&gt;/* L2 */ { 0, }, &lt;br /&gt;/* L1 */ { 0, }, &lt;br /&gt;}, &lt;br /&gt;{ /* V0.0 */ &lt;br /&gt;/* L0 */ { 0, }, &lt;br /&gt;/* L3 */ { 0, }, &lt;br /&gt;/* L2 */ { 0, }, &lt;br /&gt;/* L1 */ { 0, }, &lt;br /&gt;}, &lt;br /&gt;{ /* V2.0 */ &lt;br /&gt;/* L0 */ { 0, }, &lt;br /&gt;/* L3 */ { 0, }, &lt;br /&gt;/* L2 */ { 0, }, &lt;br /&gt;/* L1 */ { 0, }, &lt;br /&gt;}, &lt;br /&gt;{ /* V1.0 */ &lt;br /&gt;/* L0 */ { 0, }, &lt;br /&gt;/* L3 */ { 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, &lt;br /&gt;320, -1, }, &lt;br /&gt;/* L2 */ { 0, }, &lt;br /&gt;/* L1 */ { 0, }, &lt;br /&gt;}, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;}; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int samplerates[4 /* version */][4 /* samplerate */] = { &lt;br /&gt;/* V2.5 */ { 11025, 12000, 8000, -1, }, &lt;br /&gt;/* V0.0 */ { -1, -1, -1, -1, }, &lt;br /&gt;/* V2.0 */ { 22050, 24000, 16000, -1, }, &lt;br /&gt;/* V1.0 */ { 44100, 48000, 32000, -1, }, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;}; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;char *chanmodes[] = { &quot;stereo&quot;, &quot;joint stereo&quot;, &quot;dual channel&quot;, &quot;mono&quot;, }; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;struct { &lt;br /&gt;int intensity; &lt;br /&gt;int ms; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} extensions[] = { {0,0}, {1,0}, {0,1}, {1,1}, }; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;char *emphasises[] = { &quot;none&quot;, &quot;50/12 ms&quot;, &quot;(reserved)&quot;, &quot;CCITT J.17&quot;, }; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int coeffs[4 /* version */][4 /* layer */] = { &lt;br /&gt;/* V2.5 */ { 0, 0, 0, 0, }, &lt;br /&gt;/* V0.0 */ { 0, 0, 0, 0, }, &lt;br /&gt;/* V2.0 */ { 0, 72000, 72000, 24000, }, &lt;br /&gt;/* V1.0 */ { 0, 144000, 144000, 48000, }, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;}; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;int main(int argc, char *argv[]) &lt;br /&gt;{ &lt;br /&gt;int rc = 0; &lt;br /&gt;FILE *hf = NULL; &lt;br /&gt;unsigned long hdr = 0x00000000UL; &lt;br /&gt;unsigned char b; &lt;br /&gt;long offset; &lt;br /&gt;int version; &lt;br /&gt;int layer; &lt;br /&gt;int protection; &lt;br /&gt;int bitrate; &lt;br /&gt;int samplerate; &lt;br /&gt;int padding; &lt;br /&gt;int private; &lt;br /&gt;int chanmode; &lt;br /&gt;int extension; &lt;br /&gt;int copyright; &lt;br /&gt;int original; &lt;br /&gt;int emphasis; &lt;br /&gt;int size; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;printf(&quot;*** fopen(\&quot;%s\&quot;)...\n&quot;,argv[1]); &lt;br /&gt;if(NULL == (hf = fopen(argv[1],&quot;rb&quot;))) { rc = errno; goto exit; } &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;while(1) { &lt;br /&gt;if(fread(&amp;amp;b,1,1,hf) &amp;lt; 1) { rc = errno; goto exit; } &lt;br /&gt;hdr = (hdr &amp;lt;&amp;lt; 8) | b; &lt;br /&gt;if((hdr &amp;amp; MPA_SYNC_CODE) == MPA_SYNC_CODE) { &lt;br /&gt;if((offset = ftell(hf)) &amp;lt; 0) { rc = errno; goto exit; } &lt;br /&gt;offset -= 4; &lt;br /&gt;printf(&quot;*** frame header found @ 0x%08lX (%ld):\n&quot;,offset,offset); &lt;br /&gt;/// hdr = hdr &amp;amp; ~MPA_SYNC_CODE; &lt;br /&gt;version = (hdr &amp;gt;&amp;gt; 19) &amp;amp; 0x03; &lt;br /&gt;layer = (hdr &amp;gt;&amp;gt; 17) &amp;amp; 0x03; &lt;br /&gt;protection = (hdr &amp;gt;&amp;gt; 16) &amp;amp; 0x01; protection = 1 - protection; &lt;br /&gt;bitrate = (hdr &amp;gt;&amp;gt; 12) &amp;amp; 0x0F; &lt;br /&gt;samplerate = (hdr &amp;gt;&amp;gt; 10) &amp;amp; 0x03; &lt;br /&gt;padding = (hdr &amp;gt;&amp;gt; 9) &amp;amp; 0x01; &lt;br /&gt;private = (hdr &amp;gt;&amp;gt; 8) &amp;amp; 0x01; &lt;br /&gt;chanmode = (hdr &amp;gt;&amp;gt; 6) &amp;amp; 0x03; &lt;br /&gt;extension = (hdr &amp;gt;&amp;gt; 4) &amp;amp; 0x03; &lt;br /&gt;copyright = (hdr &amp;gt;&amp;gt; 3) &amp;amp; 0x01; &lt;br /&gt;original = (hdr &amp;gt;&amp;gt; 2) &amp;amp; 0x01; &lt;br /&gt;emphasis = (hdr &amp;gt;&amp;gt; 0) &amp;amp; 0x03; &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t version .. = (%d) MPEG &lt;br /&gt;%d.%d\n&quot;,version,versions[version].major,versions[version].minor); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t layer .... = (%d) Layer %d\n&quot;,layer,layers[layer]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t protection = (%d) %s\n&quot;,protection,booleans[protection]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t bitrate .. = (%d) %d &lt;br /&gt;Kbps\n&quot;,bitrate,bitrates[version][layer][bitrate]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t samplerate = (%d) %d &lt;br /&gt;Hz\n&quot;,samplerate,samplerates[version][samplerate]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t padding .. = (%d) %s\n&quot;,padding,booleans[padding]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t private .. = (%d) %s\n&quot;,private,booleans[private]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t chanmode . = (%d) %s\n&quot;,chanmode,chanmodes[chanmode]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t extension = (%d) Intensity stereo = %s, MS stereo = &lt;br /&gt;%s\n&quot;,extension,booleans[extensions[extension].intensity],booleans[extension &lt;br /&gt;s[extension].ms]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t copyright = (%d) %s\n&quot;,copyright,booleans[copyright]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t original . = (%d) %s\n&quot;,original,booleans[original]); &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t emphasis . = (%d) %s\n&quot;,emphasis,emphasises[emphasis]); &lt;br /&gt;size = coeffs[version][layer] &lt;br /&gt;* bitrates[version][layer][bitrate] &lt;br /&gt;/ samplerates[version][samplerate] &lt;br /&gt;+ padding - 4; &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt;\t payload .. = %d bytes\n&quot;,size); &lt;br /&gt;if(fseek(hf,size,SEEK_CUR)) { rc = errno; goto exit; } &lt;br /&gt;} &lt;br /&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;exit: &lt;br /&gt;printf(&quot;&amp;gt;&amp;gt;&amp;gt; rc = %d\n&quot;,rc); &lt;br /&gt;if(hf) (void)fclose(hf); &lt;br /&gt;return rc; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;자동으로 Destionation 파일 포멧 얻기&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;ACM에서 source와 destionation 포멧을 설정하는 것은 매우 민감하다. 잘못된 값이 입력되면 변화과정시 에러가 발생하면서 중단이 된다. Source 정보를 원래 파일에서 추출해서 입력하면 되지만 destination이 문제이다. 다양한 설정 값이 존재하기 때문이다.&lt;br /&gt;&lt;br /&gt;이를 위해서 ACM에서는 source 포멧에 따라 destination 포멧을 결정해주는 API가 있다. 바로 acmFormatSuggest 함수이다. 이 역시 MSDN를 살펴보면 되지만, 예제가 없기 때문에 실제 사용에 있어서 어려움이 있다.&lt;br /&gt;&lt;br /&gt;아래 예제는 다른 사이트에서 참고해서 다시 간략하게 정리해서 코딩했다.&lt;br /&gt;이 예제를 MP3포멧에서 PCM으로 변환하기 위해서 포멧을 결정하는 코드이다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;[열기] acmFormatSuggest 예제 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;DWORD maxFormatSize = 0;&lt;br /&gt;MMRESULT mmr = 0;&lt;br /&gt;&lt;br /&gt;mmr = acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT, &amp;amp;maxFormatSize);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// 아래는 source인 mp3 포멧을 지정해준다.&lt;br /&gt;LPMPEGLAYER3WAVEFORMAT mp3format = (LPMPEGLAYER3WAVEFORMAT) new BYTE[maxFormatSize]; &lt;br /&gt;memset(mp3format, 0, maxFormatSize);&lt;br /&gt;&lt;br /&gt;mp3format-&amp;gt;wfx.cbSize = MPEGLAYER3_WFX_EXTRA_BYTES; &lt;br /&gt;mp3format-&amp;gt;wfx.wFormatTag = WAVE_FORMAT_MPEGLAYER3; &lt;br /&gt;mp3format-&amp;gt;wID = MPEGLAYER3_ID_MPEG;&lt;br /&gt;mp3format-&amp;gt;wfx.nChannels = 2; // 스테레오&lt;br /&gt;mp3format-&amp;gt;wfx.wBitsPerSample = 0; // Must be 0?&lt;br /&gt;mp3format-&amp;gt;wfx.nBlockAlign = 1; // Must be 1?&lt;br /&gt;mp3format-&amp;gt;wfx.nSamplesPerSec = 22050;&lt;br /&gt;mp3format-&amp;gt;wfx.nAvgBytesPerSec = mp3format-&amp;gt;wfx.nSamplesPerSec * mp3format-&amp;gt;wfx.nChannels*2; // 16bit 데이터로 간주&lt;br /&gt;mp3format-&amp;gt;fdwFlags = MPEGLAYER3_FLAG_PADDING_OFF;&lt;br /&gt;mp3format-&amp;gt;nBlockSize = 512; // 이값은 임의로 지정했다.(블럭크기인데, 정확한 용도는...)&lt;br /&gt;mp3format-&amp;gt;nFramesPerBlock = 1;&lt;br /&gt;mp3format-&amp;gt;nCodecDelay = 1393;&lt;br /&gt;&lt;br /&gt;// 아래는 destination인 pcm 포멧을 지정한다. 포멧에 지정되는 값은 아주 간략하다.&lt;br /&gt;WAVEFORMATEX *waveOut = (WAVEFORMATEX*)new Byte[maxFormatSize];&lt;br /&gt;memset(waveOut,0, sizeof(WAVEFORMATEX));&lt;br /&gt;&lt;br /&gt;waveOut-&amp;gt;cbSize = static_cast&amp;lt;WORD&amp;gt;(maxFormatSize) - sizeof(WAVEFORMATEX); // 추가되는 정보 크기&lt;br /&gt;waveOut-&amp;gt;wFormatTag = WAVE_FORMAT_PCM; // 변환될 포멧을 지정한다.&lt;br /&gt;&lt;br /&gt;mmr = acmFormatSuggest(NULL, (LPWAVEFORMATEX)mp3format, waveOut, maxFormatSize, ACM_FORMATSUGGESTF_WFORMATTAG); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;결과로 waveOut에서 값들이 채워질 것이다. 그래로 사용해도 되고 때에 따라서 값을 변경도 가능하다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;다중 포멧 변환&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt;앞에서 포멧 변화은 단순하다. 입력 포멧과 출력 포멧만 정해주면 된다. 그러나 실제로는 단순하지 않다. ACM에서는 때때로 여러번 변환해야 원하는 포멧을 얻을 수 있다. 즉 앞에서 변환과정을 한번이 아닌 두번 이상 거치는 것이다. 보통 source와 destinatin 포멧이 서로 다른 경우, 특히 둘다 PCM이 아니거나 어느 하나가 아닌 경우에 종종발생한다.&lt;br /&gt;&lt;br /&gt;MSDN에 따르면 16-bit, 44-kHz, stereo PCM을 11-kHz mono ADPCM으로 변화를 하려면, 바로 변환은 힘들고 중간에 16-bit, 11-kHz, mono PCM으로 변환한 후에 ADPCM으로 변환해야한다.&lt;br /&gt;&lt;br /&gt;16-bit 44-kHz stereo PCM--&amp;lt;변환&amp;gt;--&amp;gt;16-bit 11-kHz mono PCM--&amp;lt;변환&amp;gt;--&amp;gt;11-kHz mono ADPCM&lt;br /&gt;&lt;br /&gt;만약 source가 PCM이 아니면 먼저 PCM으로 변환을 한후 작업을 해야한다. 일반적으로 가장 간단한 변환 단계는 source와 destination이 모두 PCM이면 된다. 혹은 변환하는 destination이 채널이나 비트레이스, 비트 수는 일치하고 단순히 PCM으로만 변환해도 간단하게 한번의 변환으로 종료된다.&lt;br /&gt;&lt;br /&gt;다시 정리하면 다음과 같다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;Source가 PCM이 아니면 PCM으로 변환 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;Destination이 PCM이 아니면 source에서 PCM으로 변환하고 최종 포멧으로 변환 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;Source와 destination이 PCM이면 직접 변환 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;Source와 destination이 PCM이 아니면 더많은 단계를 거쳐서 변환 &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;이외에 더많은 정보를 원하면 아래 &quot;&lt;A href=&quot;http://msdn2.microsoft.com/en-us/library/aa910365.aspx&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;Audio Compression Manager&lt;/SPAN&gt;&lt;/A&gt;&quot;를 참고하길 바란다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;MSACM에서 MP3 지원&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt;윈도우즈에서는 기본적으로 MP3 인코딩과 디코딩이 가능하다. 이중에서 인코딩을 할 수 있는 포멧에 제한이 있다. 즉 56kbps/24kHz 이상으로 인코딩은 불가능하다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;이를 확인할 수 있는 방법은 먼저 &quot;C:\Windows\system32&quot; 폴더로 이동한다. 만약 다른 드라이브나 폴더에 윈도우를 설치했다면 해당 윈도우 밑의 &quot;system32&quot;폴더로 이동한다. 그 안에서 &quot;l3codeca.acm&quot;파일을 찾는다. 해당 파일 속성에서 버전을 확인해보면, 1.9.0.305라고 되어 있을 것이다. 이 파일이 앞에서 말한 MP3를 지원해주는 ACM 드라이버이다.&lt;br /&gt;&lt;br /&gt;만약 WMP10 이상으로 설치했다면 &quot;system32&quot;폴더안에 l3codecp.acm파일이 있을 것이다. 이 파일도 MP3를 지원하는 ACM 드라이버인데 이파일은 모든 비트레이트에 대해 인코딩과 디코딩을 할 수 있게 한다.&lt;br /&gt;&lt;br /&gt;그래서 만약 프로그램을 개발하는 입장이라면 MP3에 대한 사용하기 위해서 사용자에게 WMP10버전 이상을 필수 설치 항목에 넣어둬야 한다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;l3codecx.acm - 디코딩 전용, 인코딩은 안됨 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;l3codeca.acm - &lt;STRONG&gt;advanced&lt;/STRONG&gt;, 모든 비트레이트 디코딩 가능, 56kbps이하만 인코딩 가능 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;l3codecp.acm - &lt;STRONG&gt;professional&lt;/STRONG&gt;, 모든 비트레이트를 디코딩과 인코딩 가능 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;l3codecx.ax - amc용이 아니다. WMP 6.4에 의해서 설치되는 파일(무시) &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;&lt;STRONG&gt;프로젝트&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;아래 프로젝트는 MP3파일을 PCM으로 변환하는 예제이다. 완벽한 소스가 아니며, 기능 구현이 완변하게 된 것이 아니기에 안에 소스만을 참고해서 살펴보기를 바란다.&lt;br /&gt;&lt;STRONG&gt;주의! 바로 컴파일해서 실행이 안된다. 내부 변수 값을 수정해야한다. &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/01731C3550753AD132&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Test10_acm.zip&lt;/a&gt;&lt;/span&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;STRONG&gt;vc++ 2003 프로젝트&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;&lt;STRONG&gt;Troubleshooting&lt;br /&gt;&lt;br /&gt;ACM에서 MP3 인코딩시 Halt&lt;br /&gt;&lt;br /&gt;&lt;/STRONG&gt;MP3는 다양한 버전과 포멧이 존재한다. 그리고 인코딩 품질에 따른 조합되는 경우의 수도 상당하다.&lt;br /&gt;경험에 따르면 ACM에서 &lt;br /&gt;&lt;br /&gt;#define MP3_BLOCK_SIZE 522&lt;br /&gt;&lt;br /&gt;//... (생략)&lt;br /&gt;&lt;br /&gt;22-kHz stereo MP3 --&amp;lt;변환&amp;gt;--&amp;gt; 22-kHz stereo PCM (에러 발생)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ULONG rawbufsize = 0;&lt;br /&gt;&lt;br /&gt;mmr = acmStreamSize(g_mp3stream, MP3_BLOCK_SIZE, &amp;amp;rawbufsize, ACM_STREAMSIZEF_SOURCE);&lt;br /&gt;//...&lt;br /&gt;LPBYTE mp3buf = new BYTE[MP3_BLOCK_SIZE];&lt;br /&gt;LPBYTE rawbuf= new BYTE[rawbufsize];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ACMSTREAMHEADER mp3streamHead;&lt;br /&gt;mp3streamHead.cbStruct = sizeof(ACMSTREAMHEADER);&lt;br /&gt;mp3streamHead.cbSrc = mp3buf;&lt;br /&gt;mp3streamHead.cbSrcLength = MP3_BLOCK_SIZE;&lt;br /&gt;mp3streamHead.cbDst = rawbuf;&lt;br /&gt;mp3streamHead.cbDstLength = rawbufsize;&lt;br /&gt;&lt;br /&gt;mmr = acmStreamPrepareHeader(g_mp3stream, &amp;amp;mp3streamHead); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;// ...&lt;br /&gt;&lt;br /&gt;MMRESULT에서 512 에러가 발생한다. 위의 인터넷에 떠도는 예제를 그대로 사용했을 때 발생할 수 있는 문제이다. 512에러의 의미는 다음과 같다.&lt;br /&gt;&lt;br /&gt;512 - ACM Operation Not Possible.&lt;br /&gt;&lt;br /&gt;즉, ACM를 처리할 수 없다라는 의미이다. 원인이 뭘까? 한번 여러분이 곰곰히 생각해볼라.&lt;br /&gt;&lt;br /&gt;&lt;EM&gt;정답:&lt;/EM&gt;&lt;br /&gt;&lt;br /&gt;이는 실제 해결책인지는 확인하지 못했다. 경험에 의한 해결이라고 보면 된다. 아직 ACM에대해서 정확히 알지 못하므로 단언하지는 못하겠다.&lt;br /&gt;&lt;br /&gt;위의 MP3_BLOCK_SIZE의 522 값을 512값으로 변경하면 된다. 그러면 이상없이 인코딩이 된다.&lt;br /&gt;근데 이렇게 하면 소리가 이상하게 들린다. 문제가 해결되었다고 생각했는데 다신 산이 나타났다.&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;EM&gt;해결:&lt;/EM&gt;&lt;br /&gt;&lt;br /&gt;&lt;/STRONG&gt;정말 삽질 많이 했다. 짜증난다. 512값으로 변경된 것이 이상없다는 가정하에서 디버깅을 했지만 원인이 무었인지 몰랐다. 512값을 256값으로 변경해보았다. 앗!!! 소리가 조금 정상적으로 들렸다. 저품질 오디오에서도 다시 문제가 생겼다. 다시 128으로 변경했다. 이번에는 정상적으로 들렸다.&lt;br /&gt;실제 이값이 인코딩시 어떤 영향을 미치는지는 알지못하겠다.&lt;br /&gt;이 부분은 좀더 확인해보거나 자료가 필요하다. 혹시 이에 대해 알고 계신분은 저의 메일이나 댓글로 남겨주시길 바랍니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;오디오 소리가 헬륨가스 먹은것 처럼 이상한 소리로 인코딩&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt;간혹 오디오를 인코딩했는데 소리가 헬륨가스 먹으것 처럼 이상한 소리를 내면서 재생시간도 절반으로 줄어드는 경우가 있다.&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;EM&gt;해결:&lt;/EM&gt;&lt;/STRONG&gt;&lt;br /&gt;이는 22050Hz 오디오를 44100Hz 오디오로 바로 인코딩했을 경우 발생한다. 즉 22050Hz 오디오를 44100으로 변환하는게 아니라 원래는 22050Hz인데 44100Hz으로 그냥 인코딩하면서 발생한다.&lt;br /&gt;다시 22050Hz으로 인코딩하거나 중간에 44100Hz으로 인코딩하는 과정을 추가해서 처리하면 된다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;참고사이트:&lt;br /&gt;&lt;A href=&quot;http://msdn2.microsoft.com/en-us/library/ms707836.aspx&quot; target=_blank&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;Converting Data from One Format to Another&lt;/SPAN&gt;, Microsoft(R)&lt;br /&gt;&lt;A href=&quot;http://dreamstorm.cafe24.com/cgi-bin/moin.cgi/DirectShow/IMediaDet%EB%A5%BC%EC%9D%B4%EC%9A%A9%ED%95%B4%EB%AF%B8%EB%94%94%EC%96%B4%EC%A0%95%EB%B3%B4%EC%9D%BD%EA%B8%B0&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;DirectShow MediaDet를이용해미디어정보읽기&lt;/SPAN&gt;&lt;/A&gt; &lt;br /&gt;&lt;A href=&quot;http://msdn2.microsoft.com/en-us/library/ms712729.aspx&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;Multistep Format Conversion&lt;/SPAN&gt;&lt;/A&gt;, Microsoft(R)&lt;br /&gt;&lt;A href=&quot;http://msdn2.microsoft.com/en-us/library/aa910365.aspx&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;Audio Compression Manager&lt;/SPAN&gt;&lt;/A&gt;, Microsoft(R)&lt;br /&gt;&lt;A href=&quot;http://mp3decoders.mp3-tech.org/decoders_acm.html&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;acm Decoders&lt;/SPAN&gt;&lt;/A&gt;, mp3-tech.org&lt;br /&gt;Alessandro Angeli, &lt;A href=&quot;http://groups.google.com/group/microsoft.public.win32.programmer.mmedia/msg/a2952ae237dc099d&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;Reading the MP3 file/frame format&lt;/SPAN&gt;&lt;/A&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;MP3 참고사이트:&lt;br /&gt;&lt;/STRONG&gt;id3 (&lt;A href=&quot;http://www.id3.org/&quot;&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;http://www.id3.org/&lt;/SPAN&gt;&lt;/A&gt;)&lt;br /&gt;mp3-tech(&lt;A href=&quot;http://www.mp3-tech.org/&quot;&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;http://www.mp3-tech.org/&lt;/SPAN&gt;&lt;/A&gt;)&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;기타 오디오 관련 자료:&lt;/STRONG&gt;&lt;br /&gt;Sampling Sound in Windows 32(&lt;A href=&quot;http://www.relisoft.com/Freeware/recorder.html&quot;&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;http://www.relisoft.com/Freeware/recorder.html&lt;/SPAN&gt;&lt;/A&gt;)&lt;br /&gt;Simple DirectMedia Layer (&lt;A href=&quot;http://www.libsdl.org/&quot;&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;http://www.libsdl.org/&lt;/SPAN&gt;&lt;/A&gt;)&lt;br /&gt;Steven De Toni, Simple Audio Out Oscilloscope and Spectrum Analyzer(&lt;A href=&quot;http://www.codeproject.com/KB/audio-video/oscilloscope.aspx?df=100&amp;amp;forumid=324752&amp;amp;exp=0&amp;amp;select=1965375&quot;&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;http://www.codeproject.com/KB/audio-video/oscilloscope.aspx?df=100&amp;amp;forumid=324752&amp;amp;exp=0&amp;amp;select=1965375&lt;/SPAN&gt;&lt;/A&gt;) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;==출처&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 9pt&quot;&gt;작성자: 박재성(o&lt;A href=&quot;mailto:ospace114@empal.컴&quot;&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;mailto:ospace114@empal.컴&lt;/SPAN&gt;&lt;/A&gt;)&lt;br /&gt;&lt;br /&gt;** 편의상 평어를 사용하겠습니다. 제발 돌은 던지지 마세요. ㅠ.ㅠ&lt;br /&gt;** 이자료를 어떤 분이 퍼가실지 모르지만, 퍼가실때에는 출처를 밝혀주세요.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <category>Program Visual C++</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/10998</guid>
      <comments>https://programpark.tistory.com/10998#entry10998comment</comments>
      <pubDate>Wed, 10 Oct 2012 18:05:03 +0900</pubDate>
    </item>
    <item>
      <title>티스토리 스킨 변경후 이미지 사이즈 자동 조절하기</title>
      <link>https://programpark.tistory.com/10997</link>
      <description>&lt;P&gt;&lt;A href=&quot;http://www.coolwarp.net/1142&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; COLOR: blue; FONT-SIZE: 18pt; TEXT-DECORATION: underline&quot;&gt;&lt;STRONG&gt;티스토리 스킨 변경후 이미지 사이즈 자동 조절하기&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 18pt&quot;&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;br /&gt;&lt;/SPAN&gt;티스토리 스킨을 변경할때마다 날 귀찮게 하는 것이 한가지 있다. 바로 본문에 삽입된 이미지 사이즈에 대한 것이다. 스킨마다 본문 영역 크기가 다른것에 비해서 이미지 리사이징에 대한 대책도 없이 만들어진 스킨들이 많다. 이런 스킨을 적용한뒤 기존에 작성한 포스트들을 확인해보면 영역을 넘어가는 이미지들은 죄다 한쪽 옆이 짤려있는것을 볼 수 있다. &lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;해결책은 2가지가 있다. 본인처럼 기존 스킨을 하나씩 뜯어고쳐 본인의 취향에 맞게 만들어서 적용하는 무식한 방법 한가지와 이미지 리사이징 코드를 삽입해서 본문 영역 크기에 상관없이 자동으로 크기가 맞춰지도록 하는 방법이 있다. 스킨을 뜯어고치는것이 시간과 노력이 수십배로 들어가지만 대부분의 스킨들은 내가 선호하는 영역이 몇가지씩 빠져있는터라 개인적으론 선호하는 방법이지만 정말 간편하면서도 합리적인 방법은 두번째이다. &lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;적용 방법은 간단하다. &lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;1. 아래 파일을 다운받는다.&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;A href=&quot;http://www.coolwarp.net/attachment/cfile6.uf@172B07444F431287209E86.js&quot;&gt;&lt;A href=&quot;http://www.coolwarp.net/attachment/cfile6.uf@172B07444F431287209E86.js&quot;&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/0167304F50750B4C01&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;imagefix2.js&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;자바스크립트 출처 : &lt;A title=&quot;[http://oloklir.tistory.com/ ]로 이동합니다.&quot; href=&quot;http://oloklir.tistory.com/%20&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue; TEXT-DECORATION: underline&quot;&gt;http://oloklir.tistory.com/ &lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;br /&gt;&lt;/SPAN&gt;2. 위에서 받은 imagefix2.js 파일을 HTML/CSS 편집 -&amp;gt; 파일업로드 항목에서 업로드 한다. 기존 파일을 지우지 않아도 동일 파일명으로 업로드 하면 알아서 덮어쓰기 된다.&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;3. skin.html 안에 아래 코드 한줄을 삽입한다. 주의할것은 타 코드를 침범하지 않게 &amp;lt; /&amp;gt; 이후에 넣을것.&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; BACKGROUND: white&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림&quot;&gt;&lt;SPAN style=&quot;COLOR: #f3709b&quot;&gt;&amp;lt;script src=&quot;./images/imagefix2.js&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/0121083450750A5326&quot; /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&amp;lt;/div&amp;gt; 와 &amp;lt;div&amp;gt; 사이에 삽입해야 한다. 그것만 지키면 소스의 어디에든지 넣어도 상관없다. 물론 head 와 /head 사이에 위치해야함은 기본이다. &lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;적용 후 웹브라우저에서 F5를 눌러서 Reload 해준다. 위 스크립트가 적용되고나면 이후 그림 사이즈가 틀린 글을 볼때 이미지 크기가 자동으로 조절되는것을 볼 수 있다. 변환시 약간의 딜레이가 생길수 있으니 그정도는 감수하도록 하자. 딜레이라기 보다는 이미지가 리사이즈 되는 과정이 순간적으로 보이는 정도다. 본인의 필요에 의해서 포스팅한 글이지만 필요하신 분들도 많으리라 생각한다.&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;출처 &lt;A href=&quot;http://www.coolwarp.net/1142&quot;&gt;http://www.coolwarp.net/1142&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <category>Program Web</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/10997</guid>
      <comments>https://programpark.tistory.com/10997#entry10997comment</comments>
      <pubDate>Wed, 10 Oct 2012 14:40:35 +0900</pubDate>
    </item>
    <item>
      <title>AVIStreamWrite code..</title>
      <link>https://programpark.tistory.com/10996</link>
      <description>&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;I tried to use this to add a .wav to an existing .avi (although I had a class CWaveSoundRead). If you check the return codes, you get to AVIStreamWrite() which returns 0x80044065, which turns out to be AVIERR_UNSUPPORTED.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;In hindsight, I'd say you called AVIFileCreateStream() before you filled in the AVISTREAMINFO object. Actually, now that I see it, it's hard to imagine your code compiling as-is, since audioInfo is defined AFTER AVIFileCreateStream!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;Here's something I did, although it still mistakes the audio stream length:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;struct FmtChunk {  
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  char id[4];            //=&quot;fmt &quot; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned long size;              //=16 or 0x28 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  short wFormatTag;       //=WAVE_FORMAT_PCM=1 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned short wChannels;        //=1 or 2 for mono or stereo 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned long  dwSamplesPerSec;  //=11025 or 22050 or 44100 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned long  dwAvgBytesPerSec; //=wBlockAlign * dwSamplesPerSec 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned short wBlockAlign;      //=wChannels * (wBitsPerSample==8?1:2) 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned short wBitsPerSample;   //=8 or 16, for bits per sample 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;}; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;struct DataChunk {  
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  char id[4];   //=&quot;data&quot; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned long size;    //=datsize, size of the following array 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned char data[1]; //=the raw data goes here 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;}; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;struct WavChunk {  
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  char id[4];   //=&quot;RIFF&quot; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned long size;    //=datsize+8+16+4 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  char type[4]; //=&quot;WAVE&quot; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;}; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;bool Q_AVI_AddWav(cstring fnameVideo,cstring fnameAudio) 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;// Adds a .wav file to an existing .avi (with video stream) 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;{ 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  IAVIStream* m_pStreamAudio=0; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  HRESULT hr; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  AVIFileInit(); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  PAVIFILE avi; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  hr=AVIFileOpen(&amp;amp;avi, fnameVideo,OF_WRITE,NULL); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  CHECK(hr,&quot;AVIFileOpen&quot;); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  WavChunk wav; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  FmtChunk fmt; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  DataChunk dat; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  //read wav file 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  FILE *fr; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  int   pos; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  fr=qfopen(fnameAudio,&quot;rb&quot;); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // Read header 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  fread(&amp;amp;wav,1,sizeof(wav),fr); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // Read 'fmt' chunk; may be 16 or 40 in length 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  pos=ftell(fr); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  fread(&amp;amp;fmt,1,sizeof(fmt),fr); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  if(fmt.size==40)fseek(fr,40-16,SEEK_CUR); // Skip rest of fmt 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // else it's ok 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // Read data specs 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  fread(&amp;amp;dat,sizeof(dat),1,fr); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  char *buf = new char[dat.size]; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  qdbg(&quot;Wav data %d bytes\n&quot;,dat.size); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  fread(buf,1,dat.size,fr); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  qfclose(fr); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // set wave format info 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  WAVEFORMATEX  wfx; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  wfx.wFormatTag=fmt.wFormatTag; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  wfx.cbSize=0; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  wfx.nAvgBytesPerSec=fmt.dwAvgBytesPerSec; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  wfx.nBlockAlign=fmt.wBlockAlign; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  wfx.nChannels=fmt.wChannels; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  wfx.nSamplesPerSec=fmt.dwSamplesPerSec; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  wfx.wBitsPerSample=fmt.wBitsPerSample; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // create audio stream 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  AVISTREAMINFO ahdr; ZeroMemory(&amp;amp;ahdr,sizeof(ahdr)); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  ahdr.fccType=streamtypeAUDIO; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  ahdr.dwScale=wfx.nBlockAlign; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  ahdr.dwRate=wfx.nSamplesPerSec*wfx.nBlockAlign;  
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  ahdr.dwSampleSize=wfx.nBlockAlign; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  ahdr.dwQuality=(DWORD)-1; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  hr=AVIFileCreateStream(avi, &amp;amp;m_pStreamAudio, &amp;amp;ahdr); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  CHECK(hr,&quot;AVIFileCreateStream&quot;); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  if(hr!=AVIERR_OK) {if (buf) QDELETE_ARRAY(buf); /*delete[] buf;*/ return false;} 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  hr = AVIStreamSetFormat(m_pStreamAudio,0,&amp;amp;wfx,sizeof(WAVEFORMATEX)); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  CHECK(hr,&quot;AVIStreamSetFormat&quot;); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  if(hr!=AVIERR_OK) {if (buf) QDELETE_ARRAY(buf); /*delete[] buf;*/ return false;} 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  //write audio stream 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned long numbytes = dat.size; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  unsigned long numsamps = fmt.wChannels*numbytes*8 / wfx.wBitsPerSample; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  hr = AVIStreamWrite(m_pStreamAudio,0,numsamps,buf,numbytes,0,0,0); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  CHECK(hr,&quot;AVIStreamWrite&quot;); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  qdbg(&quot;Write numsamps %d, numbytes %d\n&quot;,numsamps,numbytes); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  QDELETE_ARRAY(buf); //if(buf)delete[] buf; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // Release audio stream 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  AVIStreamRelease(m_pStreamAudio); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // Close AVI 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  hr=AVIFileRelease(avi); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  CHECK(hr,&quot;AVIFileRelease&quot;); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  // Close VFW 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  AVIFileExit(); 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;  return hr==AVIERR_OK; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:굴림; font-size:9pt&quot;&gt;}&lt;/span&gt;&lt;/p&gt;</description>
      <category>Program Visual C++</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/10996</guid>
      <comments>https://programpark.tistory.com/10996#entry10996comment</comments>
      <pubDate>Wed, 10 Oct 2012 13:32:14 +0900</pubDate>
    </item>
    <item>
      <title>손연재 에어컨 모델별 구별법</title>
      <link>https://programpark.tistory.com/10995</link>
      <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;
&amp;nbsp;&lt;/p&gt;&lt;p&gt;
&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/196C673C5073D57932&quot; /&gt;&lt;span style=&quot;color: rgb(64, 64, 64); font-family: Arial; font-size: 10pt;&quot;&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a title=&quot;LG전자 휘센 F-Q165DMPWQW&quot; href=&quot;http://shopping.naver.com/detail/detail.nhn?where=all&amp;amp;query=%EC%86%90%EC%97%B0%EC%9E%AC%20%EC%97%90%EC%96%B4%EC%BB%A8&amp;amp;cat_id=40009688&amp;amp;nv_mid=6227594324&amp;amp;frm=NVSCPRO&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 204); font-family: 맑은 고딕; font-size: 10pt;&quot;&gt;LG전자휘센 F-Q165DMPWQW&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: 굴림; font-size: 12pt;&quot;&gt; : 16평 동그란 매직윈도우 고정&lt;span style=&quot;color: rgb(64, 64, 64);&quot;&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a title=&quot;LG전자 휘센 F-Q165DLPWQW&quot; href=&quot;http://shopping.naver.com/detail/detail.nhn?where=all&amp;amp;query=%EC%86%90%EC%97%B0%EC%9E%AC%20%EC%97%90%EC%96%B4%EC%BB%A8&amp;amp;cat_id=40009688&amp;amp;nv_mid=6227594447&amp;amp;frm=NVSCPRO&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 204); font-family: 맑은 고딕; font-size: 10pt;&quot;&gt;LG전자휘센 F-Q165DLPWQW&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: 굴림; font-size: 12pt;&quot;&gt; : 16평 동그란 매직윈도우 회전&lt;span style=&quot;color: rgb(64, 64, 64);&quot;&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a title=&quot;LG전자 휘센 F-Q185DMPWQW&quot; href=&quot;http://shopping.naver.com/detail/detail.nhn?where=all&amp;amp;query=%EC%86%90%EC%97%B0%EC%9E%AC%20%EC%97%90%EC%96%B4%EC%BB%A8&amp;amp;cat_id=40009688&amp;amp;nv_mid=6227593579&amp;amp;frm=NVSCPRO&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 204); font-family: 맑은 고딕; font-size: 10pt;&quot;&gt;LG전자휘센 F-Q185DMPWQW&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: 굴림; font-size: 12pt;&quot;&gt; : 18평 동그란 매직윈도우 고정&lt;span style=&quot;color: rgb(64, 64, 64);&quot;&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a title=&quot;LG전자 휘센 F-Q185DLPWQW&quot; href=&quot;http://shopping.naver.com/detail/detail.nhn?where=all&amp;amp;query=%EC%86%90%EC%97%B0%EC%9E%AC%20%EC%97%90%EC%96%B4%EC%BB%A8&amp;amp;cat_id=40009688&amp;amp;nv_mid=6227594445&amp;amp;frm=NVSCPRO&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 204); font-family: 맑은 고딕; font-size: 10pt;&quot;&gt;LG전자휘센 F-Q185DLPWQW&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: 굴림; font-size: 12pt;&quot;&gt; : 18평 동그란 매직윈도우 회전&lt;span style=&quot;color: rgb(64, 64, 64);&quot;&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <category>Knowledge General</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/10995</guid>
      <comments>https://programpark.tistory.com/10995#entry10995comment</comments>
      <pubDate>Tue, 9 Oct 2012 09:39:54 +0900</pubDate>
    </item>
    <item>
      <title>ActiveX 권한2</title>
      <link>https://programpark.tistory.com/6631</link>
      <description>&lt;DIV class=xe_content&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;사내에서 Vista 지원때문에 새로 입사자를 통해 Vista지원여부와 방법들의 확인을 요 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;청하여 결과물로 나온 1차본이다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;여러가지 자료들도 잘 정리되어 있고 많은 정보를 링크하여 놓은 좋은 정보이다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;1. Windows Vista 표준사용자의 File Save &amp;amp; Open &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(0) Administrator 계정으로 로그인해도 프로그램은 표준 사용자 권한으로 실행됩니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(1) CFileDialog를 이용해서 파일을 Save, Open 하는 프로그램을 만들어서 파일을 생성해 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;보았습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;C:\ =&amp;gt; Root Directory에서는 경고 메시지가 나타납니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(Root 대신 \My Documents에 저장할 것인지를 묻습니다.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;C:\TEMP\ =&amp;gt; 이와 같이 '쓰기 권한'이 사용자에게 부여된 폴더에는 자유롭게 저장이 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;가능합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;C:\Program Files\ =&amp;gt; '읽기/실행 권한' 이 주어져 있습니다. 파일을 쓰는 시도를 하면 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;에러 없이 파일을 자유롭게 쓸 수 있는 것처럼 보이지만, 실제로 이 폴더에 쓰는 것이 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;아니라 C:\Users\&amp;lt;사용자 이름&amp;gt;\AppData\Local\VirtualStore\Program Files\ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;이 곳에 따로 저장이 됩니다. 작업 시 사용자가 C:\Program Files\ 에 저장을 지시하 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;면, 성공적으로 파일이 저장된 것처럼 보이지만, 물리적으로는 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;C:\Users\...\VirtualStore\Program Files\ 에 파일이 저장됩니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(그러므로 C:\Program Files\ 에 찾아가보면 파일이 없습니다.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;C:\Windows\ =&amp;gt; \Program Files\ 폴더와 동일하게 작동합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;C:\Users\&amp;lt;사용자 이름&amp;gt;\AppData\Local\VirualStore\Windows\ 로 Redirection &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;시킵니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;이렇게 Vista에서 자체 Redirection 시키는 디렉토리는 C:\Windows\ 와 C:\Program &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Files\ 두 Folder만이 확인 되었습니다. C:\Users\...\VirtualStore\ 의 하위 Folder가 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;\Windows\ 와 \Program Files\ 밖에 없기 때문에, 현재로서는 이 두 Folder가 전부인 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;듯 합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(2) 역시 CFileDialog를 이용해서 C:\Windows\ 와 C:\Program Files의 파일을 읽어보면, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;먼저 C:\Users\...\VirtualStore\Windows\ 와 C:\Users\...\VirtualStore\ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Program Files\ 에 그 파일이 있는지를 확인해 본 후, 있으면 그 VirtualStore에 있는 파 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;일을 읽어오고, 없으면 C:\Windows\ 와 C:\Program Files\ 에 그 파일이 있는지 확 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;인해서 읽어옵니다. 두 폴더에 같은 이름의 파일이 모두 존재할 때, 어떤 파일이 열릴 것인 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;가에 대한 정리입니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;\VirtualStore\Program Files\ C:\Program Files\ 어느 쪽의 파일이 열리는가?&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;X X 파일 없음&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;X O C:\Program Files\&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;O X \VirtualStore\Program Files\&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;O O \VirtualStore\Program Files\&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;즉, 항상 VirtualStore가 우선적으로 검토되고, 만일 적절한 파일을 발견하지 못한 경우에 &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;한해서만, 물리적인 저장 위치인 C:\Program Files를 access한다고 정리하시면 됩니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(3) 김명신의 즐거운 하루 블로그에서 잘 정리된 정보를 얻을 수 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;- Vista Note #1. 환경설정 파일 저장, &lt;/SPAN&gt;&lt;A href=&quot;http://himskim.egloos.com/1471216&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://himskim.egloos.com/1471216&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;- Vista Note #2. Virtualization, &lt;/SPAN&gt;&lt;A href=&quot;http://himskim.egloos.com/1473911&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://himskim.egloos.com/1473911&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(4) Registry에 대한 저장은 아직 직접 실행해보지 않았습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;위에 소개된 블로그에 나타나있는 텍스트를 그대로 붙여넣기 합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Registry의 경우는 어떨까요? 핵심적인 메커니즘은 파일과 유사합니다. Registry &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Virtualization은 HKEY_LOCAL_MACHINE\Software 이하만을 가상화 합니다. 즉 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;HKEY_LOCAL_MACHINE\Software\AppKey1 에 접근을 시도하면 실제로는 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;HKEY_USERS\&amp;lt;User SID&amp;gt;_Classes\VirtualStore\Machine\Software\AppKey1 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;에 접근하게 됩니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Registry Virtualization에 대한 보다 자세한 내용은 Registry Virtualization 를 참고하십시 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;오. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;마지막으로 이러한 virtualization 기능은 다음 version의 windows 출시나 혹은 그 이전 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;에라도 제거될 수 있다는 것입니다. 실제로 64bit Vista에서는 이러한 virtualization 기 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;능이 전혀 동작하지 않습니다. 따라서 virtualization 기능에 대해서 전혀 기억하지 못하 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;더라도 다음 한가지만은 기억해야 합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Program Files나 windows 혹은 windows/system 폴더 그리고 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;HKEY_LOCAL_MACHINE\Software 등에는 파일 혹은 정보를 수정,삭제,저장할 수 없으 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;므로 프로그램을 수정해서 다른 위치에 이러한 정보를 저장하도록 고쳐야 한다는 것입니 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;다.&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(5) '관리자 권한으로 실행' 하면 물리적으로 C:\Program Files\ 혹은 C:\Windows\ 에도 &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;파일을 저장할 수 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(관리자 권한으로 C:\Users\...\VirtualStore\Program Files\ 에 저장하려면, 직접 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;찾아가야 됩니다!) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(6) 프로그램을 Install 하거나 Uninstall 할 때는 VirtualStore 저장하지 않고, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;C:\Program Files\ 에 접근할 수 있도록 권한을 줍니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;이에 대한 편의를 위해 Microsoft에서는 'MSI(Microsoft Windows Installer) 3.1 및 4.0을 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;사용하는 것' 을 권장하고 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;p.s. 파일명에 Setup이나 Install이 있으면 Vista에서 자동으로 권한을 상승시켜 준다고 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;이전에 쓰던 프로그램들을 모두 재패키징해서 재배포해야 하는 수고를 덜어주기 위해 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;MS에서 지원하는 레거시 지원이라고 합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;A href=&quot;http://aromi.tistory.com/29&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://aromi.tistory.com/29&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; 에서 관련된 내용을 찾아보실 수 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(7) &lt;/SPAN&gt;&lt;A href=&quot;http://www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; 에서 &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Microsoft가 제공하는 GuideLine을 다운 받을 수 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;최소권한부여 환경에서 어플리케이션 개발자를 위한 모범사례 및 지침(Word 문서, 720KB) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;2. Windows Vista 표준사용자의 ActiveX &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(1) 위의 File Write 하는 프로그램을 ActiveX로 바꾸어서 같은 방법으로 실행을 하였습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Local Resource로 실행 시, 보호모드로 작동하지 않기 때문에 IIS server를 열어서 접속 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;하는 방법으로 테스트를 진행하였습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(2) Regsvr32 으로 등록 해줄 때, '관리자 권한' 이 필요합니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;cmd.exe 를 '관리자 권한으로 실행' 하거나, 아예 regsvr32.exe 의 실행 권한을 바꾸어 버 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;리는 수가 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(Administrator가 아닌 사용자가 '관리자 권한으로 실행' 을 시도하면 관리자 권한이 있는 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;계정의 비밀번호를 묻습니다.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(3) Regsvr32 등록이 잘 이루어졌다면 VC6 에서 작성한 ocx가 보호모드에서 정상적으로 작 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;동합니다. 앞서 진행한 것과 동일한 테스트를 진행하였고, File Save &amp;amp; Open은 (기대한 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;바와 같이) 위와 동일한 결과가 나타납니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;IE7.0을 '관리자 권한으로 실행' 하면 IE7.0 내의 ActiveX 프로그램에서도 VirtualStore 말 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;고, C:\Windows\ 와 C:\Program Files\ 에 저장할 수 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(4) SNAIPER의 조그마한 블로그 에 가보시면 Windows Vista 를 위한 ActiveX 마이그레이션 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;작업 절차 정리 문서 1 (&lt;/SPAN&gt;&lt;A href=&quot;http://snaiper.tistory.com/206&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://snaiper.tistory.com/206&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;) &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;문서를 참고하시면 VC6 에서 작성된 ActiveX를 Vista용으로 Migration 하는 경험담이 잘 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;정리되어 있습니다. (PDF 파일이 Adobe Reader 구버젼에서는 열리지 않는 듯 합니다.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(5) 기타 ActiveX 에 관해 참고할만한 게시물들을 링크시켜 두겠습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;MS Windows Vista와 ActiveX에 대한 오해 &lt;/SPAN&gt;&lt;A href=&quot;http://aromi.tistory.com/29&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://aromi.tistory.com/29&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(위에서 이미 링크한 그 블로그 입니다.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Vista 와 ActiveX 그리고 보안 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;- (1) &lt;/SPAN&gt;&lt;A href=&quot;http://blog.naver.com/p4ssion/50013835648&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://blog.naver.com/p4ssion/50013835648&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(사실 이 글보다는 이 다음 글에 원하는 내용이 들어 있을 것 같습니다.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;비스타에서 강제로 액티브X 설치 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;- &lt;/SPAN&gt;&lt;A href=&quot;http://itviewpoint.com/tt/index.php?pl=2445&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://itviewpoint.com/tt/index.php?pl=2445&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;비스타와 보안 (Vista &amp;amp; ActiveX) 관련하여 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;- &lt;/SPAN&gt;&lt;A href=&quot;http://blog.naver.com/simonsayz?Redirect=Log&amp;amp;logNo=120034059886&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://blog.naver.com/simonsayz?Redirect=Log&amp;amp;logNo=120034059886&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Vista에서 ActiveX 사용 팁 한가지 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;- &lt;/SPAN&gt;&lt;A href=&quot;http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?mode=read&amp;amp;num=4136&amp;amp;page=2&amp;amp;db=dmdlec3&amp;amp;backdepth=3&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?mode=read&amp;amp;num=4136&amp;amp;page=2&amp;amp;db=dmdlec3&amp;amp;backdepth=3&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;이어지는 답글 Code Sign 생략하기 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;- &lt;/SPAN&gt;&lt;A href=&quot;http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?backdepth=1&amp;amp;db=dmdlec3&amp;amp;mode=read&amp;amp;num=4139&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?backdepth=1&amp;amp;db=dmdlec3&amp;amp;mode=read&amp;amp;num=4139&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림; FONT-SIZE: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(6) &lt;/SPAN&gt;&lt;A href=&quot;http://www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;http://www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; 에서 &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Microsoft가 제공하는 GuideLine을 다운 받을 수 있습니다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Internet Explorer 7 보호 모드의 이해 및 작업 (Word 문서, 366KB) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Internet Explorer 7 기술 개요 읽기 (Word 문서, 2.09MB) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(Internet Explorer 7에서는 웹 및 응용 프로그램 개발자를 위해 최종 사용자 환경, 보안, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;개인 정보 보호, 플랫폼이 대폭적으로 향상되었습니다. 이 놀라운 새 버전의 기능에 대해 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;알아보려면 이 문서를 읽어보십시오.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Internet Explorer 7.0 호환성 백서 (Word 문서, 1.92MB) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;(이 문서에서는, 변화된 IE 7.0으로 인해 발생할 수 있는 전형적인 문제 및 현재 다양한 사 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;이트에서 보고되는 사례들을 알아보고 그에 대한 대처 방법을 소개합니다.) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;위의 자료를 보면 Vista의 권한에 대한 대처 방안을 미약하게나마 생각할 수 있을 거 같다. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 돋움; FONT-SIZE: 9pt&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;[출처]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;A href=&quot;http://blog.naver.com/kbs1972/34007078&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;Windows Vista - VirtualStore, ActiveX (1차)&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;|&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;작성자&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;A href=&quot;http://blog.naver.com/kbs1972&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt;자유인&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Gulim,굴림,AppleGothic,sans-serif; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;</description>
      <category>Program Visual C++</category>
      <author>HisPark</author>
      <guid isPermaLink="true">https://programpark.tistory.com/6631</guid>
      <comments>https://programpark.tistory.com/6631#entry6631comment</comments>
      <pubDate>Wed, 18 Apr 2012 10:21:28 +0900</pubDate>
    </item>
  </channel>
</rss>