<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
    <channel>
        <title>델파이</title>
        <link>http://simples.kr/Delphi</link>
        <description></description>
        <language>ko</language>
        <pubDate>Tue, 21 May 2013 02:35:23 +0900</pubDate>
        <lastBuildDate>Tue, 21 May 2013 02:35:23 +0900</lastBuildDate>
        <generator>XpressEngine</generator>
                <copyright>Simples.Kr</copyright>
                        <image>
            <url>http://simples.kr/./files/attach/images/rss/rss.png</url>
            <title>델파이</title>
            <link>http://simples.kr/Delphi</link>
        </image>
                        <item>
            <title>VMProtect</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/31283</link>
            <guid isPermaLink="true">http://simples.kr/31283</guid>
                        <comments>http://simples.kr/31283#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;실행파일을 패킹 해주는 프로그램으로 x64비트를 지원합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/283/031/1.png&quot; alt=&quot;1.png&quot; class=&quot;iePngFix&quot; width=&quot;736&quot; height=&quot;628&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 15 Jan 2011 17:01:28 +0900</pubDate>
                                    <slash:comments>4</slash:comments>
                    </item>
                <item>
            <title>Delphi에서 인라인 어셈블리 사용하기</title>
            <dc:creator>훅크선장</dc:creator>
            <link>http://simples.kr/25914</link>
            <guid isPermaLink="true">http://simples.kr/25914</guid>
                        <comments>http://simples.kr/25914#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;자유게시판에 비슷한 내용이 올려져 있길래, 최근에 제 블로그에 포스팅한 내용을 올려봅니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: verdana, sans-serif; line-height: normal; font-size: 11px; color: rgb(146, 142, 135); &quot;&gt;&lt;h2 style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;a href=&quot;http://hook.tistory.com/entry/%EB%8D%B8%ED%8C%8C%EC%9D%B4Delphi-2010%EC%97%90%EC%84%9C-%EC%9D%B8%EB%9D%BC%EC%9D%B8-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%ACinline-Assembly-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; text-decoration: none; color: rgb(71, 64, 53); font: normal normal bold 14px/normal dotum, sans-serif; &quot;&gt;델파이(Delphi 2010)에서 인라인 어셈블리(inline Assembly) 사용하기&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(113, 113, 113); font-family: dotum, sans-serif; line-height: 18px; font-size: 12px; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;얼마전 받은 교육이 “악성코드 분석” 이었는데, 교육중에 주로 악성코드보다는 초급자를 위한 Crackme 나 KeygenMe 프로그램을 주로 분석하있다.&lt;/b&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;간단하게 Keygen을 만들려고 하니, 일일히 어셈블리 코드를 분석해서, C 언어나 Python 으로 변환하기가 너무 귀찮은 경우가 생겨서, 델파이에 인라인 어셈블리를 적용하는 방법을 찾아내었다.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;알고보니 너무 간단하고, 참 쉽다.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;asm&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;...&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;end;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;지시어 안에, 어셈코드를 넣기만 하면 된다.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;그러나,&amp;nbsp;올리디버거(OllyDbg v1.10)에서 가져온 어셈블리 코드를 델파이에 적용하는 경우에&amp;nbsp;반드시 주의하여야 하는 사항은 다음과 같다.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#E31600&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;1. 함수 인자값들은 반드시 레지스터에 저장해서 연산하여야 한다. 함수 인자는 바로 연산문에 사용할 수 없다. (지역변수는 변수명으로 바로 사용할 수 있다.)&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#E31600&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 12pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;* 참고: var 지정(내부에서 변하는 변수)이 아닌 일반 함수 인자들은 EBP를 기준으로 접근할 수 있습니다. 인자값이 변하지 않는 상수라면, 레지스터에 복사하지 않고 바로 사용할 수 있습니다. 문자열을 인자로 주었다면, 꼭 레지스터에 복사해야 합니다&lt;/span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#E31600&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 12pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;함수인자는 뒤에서 부터 차례로 DWORD PTR [EBP-04h],&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 24px; font-family: dotum, sans-serif; color: rgb(227, 22, 0); font-size: 16px; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;DWORD PTR [EBP-08h,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 24px; font-family: dotum, sans-serif; color: rgb(227, 22, 0); font-size: 16px; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;DWORD PTR [EBP-0Ch] 로 접근 가능합니다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#E31600&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;2. 어셈블리 코드안에서 사용하는 모든 레지스터는 반드시 사용전에 PUSH 하고, 사용후에 POP 해야한다. (레지스터를 초기화하는 것도 오류를 없애기 위해서는 당연히 사용해야 한다.)&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#E31600&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;3. 올리디버거에서 추출된 어셈블리 코드안의 숫자값은 모두 16진수 이므로, 인라인 어셈블리 코드로 사용하려면, 모든 숫자값에는 16진수 임을 알리는 “h” 문자를 추가하여야 한다. (MOV EAX, 20 이렇게 되어 있다면, 반드시 MOV EAX, 20h 로 바꾸어야 한다.)&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;b style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#E31600&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;4. 문자열은 주소값으로 연산되므로, 포인터 연산에 주의를 해야한다.(너무나도 당연한 말이다.)&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;예제 코드를 보여본다. (함수내에서 인자값을 바꾸는, 포인터 연산도 포함되어 있다.)&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;-------------------------------------------------------------------------&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;function TMainForm.keygen1(aStr: AnsiString; aStr_len: Integer; var ret:Integer):Cardinal;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;var&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp;ret2 : Integer;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp;asm&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PUSH EDX // Safe Store before use&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PUSH ECX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PUSH EBX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PUSH EAX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PUSH ESI&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PUSH EDI&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;XOR EDI, EDI // init value := 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;XOR ESI, ESI&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;XOR EDX, EDX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;XOR ECX, ECX &amp;nbsp;// ecx := 0, init value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;XOR EBX, EBX &amp;nbsp;// ebx := 0, init value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;XOR EAX, EAX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MOV EDX, aStr_len // copy string length&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MOV ESI, [aStr] // load string address&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MOV EDI, [ret] // load integer value address&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp;@@LOOP: // Label&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MOV AL, BYTE PTR [ESI+ECX]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;INC ECX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;XOR EAX, ECX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADD EBX, EAX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CMP ECX, EDX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;JNZ @@LOOP &amp;nbsp;// conditional jump to Label&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;IMUL EAX, EAX, 6h&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MOV DWORD PTR [EDI], EBX // pointer variable value copy&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SHL EBX, 7h&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MOV ret2, EBX &amp;nbsp;// local variable value copy&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADD EAX, EBX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MOV @Result, EAX // return value : Result&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;POP EDI // restore value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;POP ESI&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;POP EAX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;POP EBX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;POP ECX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;POP EDX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;&amp;nbsp;&amp;nbsp;end;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 10pt; &quot;&gt;&lt;span style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; line-height: 1.5; font-family: dotum, sans-serif; font-size: 9pt; &quot;&gt;end;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 19 Oct 2010 16:37:29 +0900</pubDate>
                                    <slash:comments>5</slash:comments>
                    </item>
                <item>
            <title>Doc-O-Matic</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/23337</link>
            <guid isPermaLink="true">http://simples.kr/23337</guid>
                        <comments>http://simples.kr/23337#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&lt;a href=&quot;http://www.doc-o-matic.com/&quot;/&gt;http://www.doc-o-matic.com/&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;소스코드를 문서화해주는 프로그램으로 장난아니게 좋습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;상용이며 독시즌쓰시는 분들은 한 번 이거 써보시면 매우 만족하실듯합니다. ㅎㅎ&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;화면 UI는 다음과 같구요..&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;/p&gt;&lt;center/&gt;&lt;div style=&quot;text-align: left;&quot;/&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/337/023/1.png&quot; alt=&quot;1.png&quot; class=&quot;iePngFix&quot; width=&quot;911&quot; height=&quot;749&quot; style=&quot;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;결과물은 다음과 같이 MSDN형태로 나오게 해봤습니다.&lt;/p&gt;&lt;/center&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;결과물은 탬플릿으로 선택할 수 있어서 다양한 결과물 도출이 가능합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;/p&gt;&lt;center/&gt;&lt;div style=&quot;text-align: left;&quot;/&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/337/023/2.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;1180&quot; height=&quot;762&quot; style=&quot;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;/&gt;&amp;nbsp;&lt;/p&gt;
&lt;/center&gt;&lt;div style=&quot;text-align: left;&quot;/&gt;&lt;br /&gt;&lt;/div&gt;&lt;p/&gt;&lt;/p&gt;&lt;p/&gt;&lt;/p&gt;&lt;p/&gt;&lt;a href=&quot;http://www.doc-o-matic.com/&quot;/&gt;&lt;/a&gt;


&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 30 Sep 2010 09:32:34 +0900</pubDate>
                                    <slash:comments>4</slash:comments>
                    </item>
                <item>
            <title>ImageEn - 그래픽 라이브러리</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/20105</link>
            <guid isPermaLink="true">http://simples.kr/20105</guid>
                        <comments>http://simples.kr/20105#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a href=&quot;http://www.hicomponents.com/main/&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;요번에 dcu 형태로 풀린 라이브러리로 엄청나게 많은 이미지 포맷을 지원합니다.&lt;/p&gt;&lt;p/&gt;개인적으로 좀 마음에 안드는 부분은 데모에 있는 예제들에 UI가 넘 허접해보입니다.-_-&lt;/p&gt;&lt;p/&gt;&lt;a href=&quot;http://www.hicomponents.com/main/&quot;/&gt;http://www.hicomponents.com/main/&lt;/a&gt;


&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 05 Sep 2010 11:24:49 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>GLScene 3D Controls (GL3DC)</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18765</link>
            <guid isPermaLink="true">http://simples.kr/18765</guid>
                        <comments>http://simples.kr/18765#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/glscene3dcontro/&quot;/&gt;http://sourceforge.net/projects/glscene3dcontro/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/765/018/screenshot.jpg&quot; alt=&quot;screenshot.jpg&quot; width=&quot;640&quot; height=&quot;480&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;델파이로 3D 컨트롤을 구현합니다. 제가 해당 프로젝트를 정확히 보질 않아서 그 외에 어떤 기능들이 있는지는 모르겠네요. ㅎㅎ&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 30 Aug 2010 21:27:19 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>PortableApps.com: Portable Software/USB</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18760</link>
            <guid isPermaLink="true">http://simples.kr/18760</guid>
                        <comments>http://simples.kr/18760#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/portableapps/&quot;/&gt;http://sourceforge.net/projects/portableapps/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/760/018/screenshot.jpg&quot; alt=&quot;screenshot.jpg&quot; width=&quot;341&quot; height=&quot;480&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;포타블 프로그램들을 관리해주는 프로그램으로 해당 스크린샷에 UI만 델파이로 만들어져 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 30 Aug 2010 21:17:56 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>PeaZip - 압축 프로그램</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18712</link>
            <guid isPermaLink="true">http://simples.kr/18712</guid>
                        <comments>http://simples.kr/18712#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a href=&quot;https://sourceforge.net/projects/peazip/&quot; target=&quot;_blank&quot;/&gt;https://sourceforge.net/projects/peazip/&lt;/a&gt;&lt;/p&gt;
&lt;p/&gt;&lt;br /&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/712/018/1.png&quot; alt=&quot;1.png&quot; class=&quot;iePngFix&quot; width=&quot;668&quot; height=&quot;436&quot; style=&quot;&quot; /&gt; &lt;/p&gt;
&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p/&gt;이 글을 올리는 시점에 SourceForge에 Backup 카테고리에서 2위를 달리고 있는 프로그램입니다.&lt;/p&gt;
&lt;p/&gt;크로스 플랫폼을 위해서 프리파스칼과 라자루스에서 개발되고 있습니다.&lt;/p&gt;
&lt;p/&gt;( 델파이는 아니지만 올리겠습니다. )&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 30 Aug 2010 20:40:26 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Ares Galaxy - 음악, 영화 공유</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18708</link>
            <guid isPermaLink="true">http://simples.kr/18708</guid>
                        <comments>http://simples.kr/18708#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/aresgalaxy/&quot;/&gt;http://sourceforge.net/projects/aresgalaxy/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/708/018/screenshot.jpg&quot; alt=&quot;screenshot.jpg&quot; width=&quot;610&quot; height=&quot;417&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 30 Aug 2010 20:22:36 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>TurboPower Async Professional - 시리얼 제어 등..</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18702</link>
            <guid isPermaLink="true">http://simples.kr/18702</guid>
                        <comments>http://simples.kr/18702#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/projects/tpapro/&quot; target=&quot;_blank&quot;&gt;http://sourceforge.net/projects/tpapro/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Async Professional (AsyncPro)컴포넌트는&amp;nbsp;시리얼 제어, TAPI(전화 및 팩스), 터미널 개발 등의 기능을 개발하기에 좋은 것이니  참고 바랍니다.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/702/018/screenshot.jpg&quot; alt=&quot;screenshot.jpg&quot; width=&quot;606&quot; height=&quot;429&quot; style=&quot;&quot; /&gt; &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 30 Aug 2010 20:20:04 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>TurboPower Abbrevia - 압축 컴포넌트</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18636</link>
            <guid isPermaLink="true">http://simples.kr/18636</guid>
                        <comments>http://simples.kr/18636#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a href=&quot;http://sourceforge.net/projects/tpabbrevia/&quot;/&gt;http://sourceforge.net/projects/tpabbrevia/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/636/018/1175061187.png&quot; alt=&quot;1175061187.png&quot; class=&quot;iePngFix&quot; width=&quot;338&quot; height=&quot;195&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;데브기어 블로그에도 있어서 이곳에 올립니다.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 30 Aug 2010 18:22:53 +0900</pubDate>
                                    <slash:comments>4</slash:comments>
                    </item>
                <item>
            <title>ThinVNC- HTML5 Remote Desktop</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18327</link>
            <guid isPermaLink="true">http://simples.kr/18327</guid>
                        <comments>http://simples.kr/18327#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/thinvnc/&quot;/&gt;http://sourceforge.net/projects/thinvnc/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/thinvnc/&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/327/018/c61358.jpg&quot; alt=&quot;c61358.jpg&quot; width=&quot;400&quot; height=&quot;341&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;서버는 ics 컴포넌트 기반에 델파이로 작성되어 있으며 클라이언트는 HTML5를 지원하는 웹브라우저를 사용하는&lt;/p&gt;&lt;p/&gt;원격 데스크톱 프로젝트입니다. 상당히 기대가 되는 프로젝트로 GPL 라이센스입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 28 Aug 2010 20:27:29 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Andorra 2D - 2D 그래픽엔진</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18323</link>
            <guid isPermaLink="true">http://simples.kr/18323</guid>
                        <comments>http://simples.kr/18323#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://andorra.sourceforge.net/&quot;/&gt;http://andorra.sourceforge.net/&lt;/a&gt;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/323/018/screenshot.jpg&quot; alt=&quot;screenshot.jpg&quot; width=&quot;640&quot; height=&quot;480&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p/&gt;위에 주소로 가시면 좋은 샘플들이 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 28 Aug 2010 20:13:50 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Auto-increment build number</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/18315</link>
            <guid isPermaLink="true">http://simples.kr/18315</guid>
                        <comments>http://simples.kr/18315#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p/&gt;&amp;nbsp;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/315/018/1.png&quot; alt=&quot;1.png&quot; class=&quot;iePngFix&quot; width=&quot;730&quot; height=&quot;517&quot; style=&quot;&quot; /&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p/&gt;위에 그림처럼 체크를 하면 빌드 시마다 자동으로 빌드넘버가 올라갑니다.&lt;/p&gt;
&lt;p/&gt;지금까지 이런게 있는줄도 몰랐네요.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 28 Aug 2010 19:40:50 +0900</pubDate>
                                    <slash:comments>2</slash:comments>
                    </item>
                <item>
            <title>RAD Studio XE 프리뷰 #3 - 멀티 티어, 클라우드 및 웹</title>
            <dc:creator>esniper</dc:creator>
            <link>http://simples.kr/17966</link>
            <guid isPermaLink="true">http://simples.kr/17966</guid>
                        <comments>http://simples.kr/17966#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;li&gt;-멀티 티어 개발을 더욱 확장해주는 새로운 위저드들, 새로운 프로토콜 지원, 암호화 및 압축, 클라우드 서버, PHP/자바스크립트 클라이언트&lt;/li&gt;
&lt;li&gt;-Windows Azure 서비스에 대한 클라우드 컴퓨팅 액세스&lt;/li&gt;
&lt;li&gt;-Amazon EC2 클라우드 서버에 빠르게 배포 가능&lt;/li&gt;
&lt;li&gt;-RadPHP, IP*Works, IntraWeb XI 등으로 웹 애플리케이션 개발의 새로운 방법들을 제시&lt;/li&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;embed height=&quot;600&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;800&quot; src=&quot;http://www.devgear.co.kr/includes/mediaplayer/player-licensed-viral.swf&quot; flashvars=&quot;&amp;amp;autostart=true&amp;amp;file=http%3A%2F%2Fwww.devgear.co.kr%2Frad-studio-xe-preview%2FPreview3_kr.mp4&amp;amp;fullscreen=true&amp;amp;plugins=viral-2d&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot;/&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 26 Aug 2010 10:24:23 +0900</pubDate>
                                </item>
                <item>
            <title>Base64 Encoding &amp; Decoding 소스</title>
            <dc:creator>훅크선장</dc:creator>
            <link>http://simples.kr/17250</link>
            <guid isPermaLink="true">http://simples.kr/17250</guid>
                        <comments>http://simples.kr/17250#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Base64 Encoding &amp;amp; Decoding 소스 입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;남의 것을 가져다가, 수정했습니다. (출처:&amp;nbsp;&lt;a href=&quot;http://www.delphipraxis.net/991-base64-mime-en-decoding.html&quot;&gt;http://www.delphipraxis.net/991-base64-mime-en-decoding.html&lt;/a&gt;)&lt;/p&gt;&lt;p&gt; Delphi 2009 &amp;amp; 2010 에서 사용할 수 있도록 소스 수정하였습니다.&lt;/p&gt;&lt;p&gt;Delphi 2010 에서 테스트하였습니다.&lt;/p&gt;&lt;p&gt;그러나, 아직 Ansi 용입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Unicode용은 어떻게 Base64 인코딩, 디코딩하는지 알아보는 중입니다. (아시는 분 있으면 알려주세요~.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Base64 Encoding과 Decoding을 델파이 내장 모듈을 이용해서 다음과 같이 쉽게 할 수도 있습니다. (출처 :&amp;nbsp;&lt;a href=&quot;http://strcpy.com/294&quot;&gt;http://strcpy.com/294&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;uses IdCoder, IdCoder3to4, IdCoderMIME, jpeg;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;function&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;a href=&quot;http://strcpy.com/tag/Base64Decode&quot; style=&quot;text-decoration: none; color: rgb(86, 86, 86); &quot;&gt;Base64Decode&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;(const Text : ansiString): ansiString;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;var&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; Decoder : TIdDecoderMime;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; Decoder := TIdDecoderMime.Create(nil);&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; try&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; &amp;nbsp; Result := Decoder.DecodeString(Text);&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; finally&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; &amp;nbsp; FreeAndNil(Decoder)&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; end&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;end;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;function&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;a href=&quot;http://strcpy.com/tag/Base64Encode&quot; style=&quot;text-decoration: none; color: rgb(86, 86, 86); &quot;&gt;Base64Encode&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;(const Text : ansiString): ansiString;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;var&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; Encoder : TIdEncoderMime;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; Encoder := TIdEncoderMime.Create(nil);&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; try&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; &amp;nbsp; Result := Encoder.EncodeString(Text);&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; finally&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; &amp;nbsp; FreeAndNil(Encoder);&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&amp;nbsp; end&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px; color: rgb(86, 86, 86); font-family: Tahoma, gulim; &quot;&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만, 첨부된 소스와 같이, 어셈블러를 사용하는 것이 속도가 훨씬 빠르다고 합니다. (원 저자의 주장에 의하면...)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;쓸모가 있다고 생각하시면 사용하시고, 아니면 어쩔 수 없습니다.&lt;/p&gt;&lt;p&gt;눈팅만 하기 머해서, 최근에 설치한 Delphi 2010 에서 처음 시도해 본 소스 수정이라, 함 올려봤습니다.&lt;/p&gt;&lt;p&gt;감사합니다~.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 23 Aug 2010 12:52:11 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>WinLicense - 소프트웨어 보호 및 라이센스 적용</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16858</link>
            <guid isPermaLink="true">http://simples.kr/16858</guid>
                        <comments>http://simples.kr/16858#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.themida.com/winlicense.php&quot;&gt;http://www.themida.com/winlicense.php&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/858/016/%EC%9C%88%EB%8F%84%EC%9A%B0,%20%EC%BB%A8%ED%8A%B8%EB%A1%A4%201.png&quot; alt=&quot;윈도우, 컨트롤 1.png&quot; class=&quot;iePngFix&quot; width=&quot;761&quot; height=&quot;622&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Delphi 입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 20 Aug 2010 20:01:54 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>사내 인트라넷용 후이즈 화상회의</title>
            <dc:creator>kazankros</dc:creator>
            <link>http://simples.kr/16798</link>
            <guid isPermaLink="true">http://simples.kr/16798</guid>
                        <comments>http://simples.kr/16798#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/798/016/capture002.gif&quot; alt=&quot;capture002.gif&quot; width=&quot;434&quot; height=&quot;315&quot; style=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;http://whoisdesk.net/&lt;/p&gt;&lt;p&gt;델마당에 4000king님이신 4NB에서도 화상회의를 델파이로 제작 하셨지만,&lt;/p&gt;&lt;p&gt;( 4NB는 전문 화상회의 업체입니다. :) )&lt;/p&gt;&lt;p&gt;급하게 오픈하느라 버그는 좀 많지만 후이즈 메신저가 소개된김에.. 하나 더 소개합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;최대한 간단하면서도, 소규모 기업을 대상으로 개발된것이며,&lt;/p&gt;&lt;p&gt;UDP Hole Punching의 기술이 들어갔으며(구현 어렵거나 중요한 기술은 아닙니다)&lt;/p&gt;&lt;p&gt;이는 이미 델마당 자료실에 소스 통채로 (TCP/UDP) 공개는 해 두었습니다 ^^; (델마당 닉 : 무대뽀)&lt;/p&gt;&lt;p&gt;버그는 사용자가 그리 많지는 않아서 ...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이외에도, 후이즈 그룹웨어에 사용되는 모든 ActiveX, 어플리케이션,&amp;nbsp;&lt;/p&gt;&lt;p&gt;그리고 그룹웨어 이외에도 웹서버로 구현할 수 없는 서버단 및 어플은 모두 델파이로 개발되어 있습니다 ^^;&lt;/p&gt;&lt;p&gt;



&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 20 Aug 2010 13:29:38 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>FreeCommander - 파일관리툴</title>
            <dc:creator>esniper</dc:creator>
            <link>http://simples.kr/16741</link>
            <guid isPermaLink="true">http://simples.kr/16741</guid>
                        <comments>http://simples.kr/16741#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.freecommander.com/&quot;&gt;&lt;span style=&quot;FONT-SIZE: 16px&quot;&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 24px&quot;&gt;http://www.freecommander.com/&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;정말 편리한 파일관리툴입니다. 탐색기를 대응하는 그런 툴이죠.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;한글화도 되어있어서 쓰기 편리합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/741/016/fc1_en.png&quot; alt=&quot;fc1_en.png&quot; class=&quot;iePngFix&quot; width=&quot;707&quot; height=&quot;485&quot; style=&quot;&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;주요기능은 아래와 같습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Dual-panel technology - horizontal and vertical&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Tabbed interface&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Optional tree view for each panel&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Built in file viewer to view files in hex, binary, text or image format&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;File viewer inside archives too&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Built in archive handling: ZIP (read, write), CAB (read, write), RAR (read)&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Nested archive handling&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Built in FTP client&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Easy access to system folders, control panel, desktop and start menu&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Copy, move, delete, rename files and folders&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Multi rename tool&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Wipe files&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Create and verify MD5 checksums&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;File splitting&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;File properties and context menu&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Calculation of folder size &lt;/span&gt;&lt;/font&gt;&lt;/tt&gt;
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Folder comparison / synchronization&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Modification of file date and attributes&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Folder / program favorites&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;File searching (inside archive too)&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;File filters for display&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;User defined columns for detailed view&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;css0&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;DOS command line&lt;/span&gt;&lt;/font&gt;&lt;/tt&gt; 
&lt;li style=&quot;LINE-HEIGHT: 150%; MARGIN: 0px 10px 0px 5px; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;tt&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;FONT-SIZE: 10pt&quot;&gt;Multiple language &amp;nbsp;support &lt;/span&gt;&lt;/font&gt;&lt;/tt&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 20 Aug 2010 00:36:34 +0900</pubDate>
                                    <slash:comments>2</slash:comments>
                    </item>
                <item>
            <title>RAD Studio XE 프리뷰 #2 - 최적화와 자동화</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16624</link>
            <guid isPermaLink="true">http://simples.kr/16624</guid>
                        <comments>http://simples.kr/16624#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;br /&gt;- FinalBuilder 툴(엔터프라이즈/아키텍트)로 빌드 프로세스를 자동화&lt;br /&gt;- 커맨드라인 오딧, 메트릭, 문서 생성으로 자동화된 빌드에 이전보다 더욱 많은 기능을 추가&lt;br /&gt;- AQTime 프로파일링 기능으로 고성능 애플리케이션 개발 가능&lt;br /&gt;- CodeSite 로깅 툴로 고품질 애플리케이션 개발&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;embed height=&quot;520&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;592&quot; src=&quot;http://www.devgear.co.kr/includes/mediaplayer/player-licensed-viral.swf&quot; flashvars=&quot;&amp;amp;autostart=true&amp;amp;file=http%3A%2F%2Fwww.devgear.co.kr%2Frad-studio-xe-preview%2FPreview2_kr.mp4&amp;amp;plugins=viral-2d&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot;/&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 19 Aug 2010 14:49:03 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>JSON delphi library 1.07 - 한글 및 다국어 지원</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16273</link>
            <guid isPermaLink="true">http://simples.kr/16273</guid>
                        <comments>http://simples.kr/16273#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=16274&amp;amp;sid=9237a2bbe12f188c78851225553e7f33&quot;&gt;lkJSON-1.07.7z&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;JSON delphi library 1.07 버전에 다국어 지원이 제대로 안되서 임의로 제가 수정하였습니다.&lt;/p&gt;&lt;p&gt;다음과 같은 사항이 수정되었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* 델파이 2010 이상에서만 지원합니다. 그 이하버전에서는 테스트를 하지 않았습니다.&lt;/p&gt;&lt;p&gt;*&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* sample1에 TlkJSON.ParseText 함수를 사용 시 한글로 된 문자열이 있으면 깨지는&lt;br /&gt;* 문제점 수정&lt;br /&gt;*&lt;br /&gt;* TlkJSONstreamed 클래스가 제거되었습니다. 대신 TlkJSONFile 클래스가 추가되었습니다.&lt;br /&gt;* 기존에 TlkJSONstreamed는 유니코드를 제대로 지원하지 않아서 TlkJSONFile에서&lt;br /&gt;* 저장이나 로드 시 유니코드를 제대로 지원하도록 하였으며, 기본으로 UTF8 인코딩을 따릅니다&lt;br /&gt;* 인코딩을 추가적으로 다른걸 사용하려면 함수를 오버로드해서 만들면 됩니다.&lt;br /&gt;* 스트림을 지원하려면 기존에 TlkJSONstreamed를 추가하셔서 따로 만들어야 합니다.&lt;br /&gt;*&lt;br /&gt;* LkJSON에 새로운 버전이 나오면 위에 버그들이 수정되었을 수도 있으니 해당 버전을&lt;br /&gt;* 사용하시면 됩니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 18 Aug 2010 10:16:59 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>NativeXml - XML 파싱</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16267</link>
            <guid isPermaLink="true">http://simples.kr/16267</guid>
                        <comments>http://simples.kr/16267#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.simdesign.nl/xml.html&quot;&gt;http://www.simdesign.nl/xml.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 18 Aug 2010 09:47:56 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>OmniXML - XML 파싱</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16264</link>
            <guid isPermaLink="true">http://simples.kr/16264</guid>
                        <comments>http://simples.kr/16264#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.omnixml.com/&quot;&gt;http://www.omnixml.com/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 18 Aug 2010 09:47:11 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>C++ Builder 저널</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16261</link>
            <guid isPermaLink="true">http://simples.kr/16261</guid>
                        <comments>http://simples.kr/16261#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://bcbjournal.org/?loc=home&quot; target=&quot;_blank&quot;&gt;http://bcbjournal.org/?loc=home&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/261/016/1.gif&quot; alt=&quot;1.gif&quot; width=&quot;975&quot; height=&quot;551&quot; style=&quot;&quot; /&gt; &lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 18 Aug 2010 09:46:12 +0900</pubDate>
                                </item>
                <item>
            <title>JSON delphi library</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16172</link>
            <guid isPermaLink="true">http://simples.kr/16172</guid>
                        <comments>http://simples.kr/16172#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/lkjson/&quot;&gt;http://sourceforge.net/projects/lkjson/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;델파이용 json 라이브러리입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 17 Aug 2010 14:58:38 +0900</pubDate>
                                    <slash:comments>3</slash:comments>
                    </item>
                <item>
            <title>uTrace.pas - MFC에 TRACE와 동일한 역할을 합니다.</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/16001</link>
            <guid isPermaLink="true">http://simples.kr/16001</guid>
                        <comments>http://simples.kr/16001#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=16002&amp;amp;sid=08777e10cb9b9c3f74c94a9db715ba27&quot;&gt;&lt;span style=&quot;font-size: 32px;&quot;&gt;uTrace.pas&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 32px;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MFC에는 있는데 델파이에는 없어서 만들었습니다.&lt;/p&gt;&lt;p&gt;MFC에 Trace랑은 완전히 동일하여 포맷 문자열을 지원하며 릴리즈로 빌드 시 디버그뷰에 출력되지 않습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;즉, 다음과 코드를 작성하여 디버그뷰에 출력할 수 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Trace(&apos;여기가 실행되었습니다.&apos;);&lt;br /&gt;Trace(&apos;값 : %d&apos;, [100]);&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;소스는 매우 간단합니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 16 Aug 2010 20:54:12 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>ISSkin - InnoSetup 스킨입혀주는 툴</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15979</link>
            <guid isPermaLink="true">http://simples.kr/15979</guid>
                        <comments>http://simples.kr/15979#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://isskin.codejock.com/&quot;&gt;http://isskin.codejock.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;codejock 에서 만든걸로 InnoSetup에 부가적인 스킨을 입혀줍니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/979/015/styles-bister-large.jpg&quot; alt=&quot;styles-bister-large.jpg&quot; width=&quot;503&quot; height=&quot;386&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 16 Aug 2010 17:38:41 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Delphi/C++Builder XE 발표 세미나 - 9월 2일</title>
            <dc:creator>esniper</dc:creator>
            <link>http://simples.kr/15881</link>
            <guid isPermaLink="true">http://simples.kr/15881</guid>
                        <comments>http://simples.kr/15881#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;div style=&quot;LINE-HEIGHT: 150%; OVERFLOW-Y: hidden; WIDTH: 680px; OVERFLOW: auto; WORD-BREAK: break-all&quot; ?&gt;Delphi/C++Builder의 새로운 버전인 XE에 대한 발표 세미나가 9월 2일 목요일에 열립니다. 장소는 삼성동 섬유센터 3층이구요. 오전 9시 30분부터 시작합니다.&lt;br /&gt;&lt;br /&gt;XE 버전은 2011 버전으로 알려졌던 것으로, 코드 프로파일링/최적화와 자동화, &amp;nbsp;데이터베이스 지원 강화, 에디터 기능 및 UML 모델링 기능 등 IDE 기능 강화, 웹/클라우드 개발 지원, 빌드 지원 강화 등의 최신 기능을 갖추었습니다.&lt;br /&gt;&lt;br /&gt;발표자는 저희 본사의 Delphi/C++Builder 관련 아키텍트인 존 캐스터(John Caster), 저희 데브기어의 델파이 전담 강사님이신 김원경 강사님, 애자일 전도사로 유명하신 애자일컨설팅의 김창준 대표님, 그리고 저 임프 이렇게 네 명입니다.&lt;br /&gt;&lt;br /&gt;자세한 내용은 아래 저희 데브기어 홈페이지의 세미나 안내 페이지에서 보실 수 있습니다.&lt;br /&gt;&lt;a href=&quot;http://www.devgear.co.kr/rad-studio-xe-preview/seminar_radstudio_xe.html&quot;&gt;http://www.devgear.co.kr/rad-studio-xe-preview/seminar_radstudio_xe.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;많은 개발자분들이 참석해서 최신 기술 동향을 살펴보시길 바랍니다.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 16 Aug 2010 10:36:17 +0900</pubDate>
                                    <slash:comments>3</slash:comments>
                    </item>
                <item>
            <title>ImageFileLib - 특정 포맷에 이미지를 읽고 쓰기</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15870</link>
            <guid isPermaLink="true">http://simples.kr/15870</guid>
                        <comments>http://simples.kr/15870#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://logicnet.dk/lib/&quot;&gt;http://logicnet.dk/lib/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;오픈캡쳐에서 쓰고 있는 라이브러리로 좀 오래 된 라이브러리이지만 만족하면서 쓰고 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다음과 같은 포맷을 읽고 쓸 수 있습니다.&lt;/p&gt;&lt;p&gt;BMP, JPEG, JPEG 2000, PNG, MNG, TIFF, ICO, CUR, PCX&lt;/p&gt;&lt;p&gt;다음과 같은 포맷을 읽을 수 있습니다.&lt;/p&gt;&lt;p&gt;RAS, PNM, PGM, PPM, HIPS&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 16 Aug 2010 10:11:55 +0900</pubDate>
                                    <slash:comments>2</slash:comments>
                    </item>
                <item>
            <title>Indy - 네트워크 컴포넌트</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15865</link>
            <guid isPermaLink="true">http://simples.kr/15865</guid>
                        <comments>http://simples.kr/15865#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.indyproject.org/index.en.aspx&quot;&gt;http://www.indyproject.org/index.en.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;너무 당연해서 게시물에 올라오지 않았나봅니다.&lt;/p&gt;&lt;p&gt;그래서 올립니다.&lt;img src=&quot;http://simples.kr/modules/editor/components/emoticon/tpl/images/msn/msn040.gif&quot; alt=&quot;emoticon&quot; style=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;정말 혹시나 해서 말씀드리는데 델파이에 기본으로 포함되어 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 16 Aug 2010 10:08:37 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>JSON – SuperObject</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15767</link>
            <guid isPermaLink="true">http://simples.kr/15767</guid>
                        <comments>http://simples.kr/15767#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.progdigy.com/?page_id=6&quot;&gt;http://www.progdigy.com/?page_id=6&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Delphi 에서 Json을 사용할 수 있게 하는 라이브러리입니다.&lt;/p&gt;&lt;p&gt;물론 최신에 델파이 2010에서는 기본으로 들어가 있지만 아무튼 이 라이브러리는 매우 강력합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다음 동영상은 SuperObject와 RTTI을 통한 클래스에 정보를 json포맷으로부터 읽어오고 또는 저장하는 방법을 보여줍니다.&lt;/p&gt;&lt;p&gt;대단하죠. 이 정도 수준이라면 소켓으로 클래스 자체를 보낼 수도 있을 정도입니다.-_- &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;object style=&quot;height: 344px; width: 425px;&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/G6WuIQTm7hE&quot;/&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;http://www.youtube.com/v/G6WuIQTm7hE&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;425&quot; height=&quot;344&quot;/&gt;&lt;/object&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 20:13:54 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>OAuth for Delphi</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15764</link>
            <guid isPermaLink="true">http://simples.kr/15764</guid>
                        <comments>http://simples.kr/15764#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/oauthdelphi/files/&quot;&gt;http://sourceforge.net/projects/oauthdelphi/files/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;델파이용 OAuth 인증 라이브러리입니다. 물론 인증할때만 쓰는거는 아니고 Get, Post 할때도 쓰입니다.&lt;/p&gt;&lt;p&gt;현재 프로젝트는 진행중이며 릴리즈 된 버전이 없기 때문에 svn에서 받아서 사용하셔야 합니다.&lt;/p&gt;&lt;p&gt;그래도 사용하는데에는 크게 문제가 없습니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 20:09:50 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>dxgettext - 델파이 다국어개발 라이브러리</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15742</link>
            <guid isPermaLink="true">http://simples.kr/15742</guid>
                        <comments>http://simples.kr/15742#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://dxgettext.po.dk/&quot;&gt;http://dxgettext.po.dk/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;회사에서 쓰고 있는데 아주 좋습니다.&lt;/p&gt;&lt;p&gt;델파이에서 다국어버전을 이용하여 개발을 할 때 이 라이브러리를 사용하면 손쉽게 개발이 가능합니다.&lt;/p&gt;&lt;p&gt;사실 라이브러리라기보다는 pas 파일하나와 기본으로 제공하는 툴과 poedit에 조합이라고 볼 수 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Delphi 2009 이상에 사용자분은 컴파일이 안될 수 있으므로 아래에 주소에서 pas만 받으시면 됩니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 32); font-family: Verdana;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://svn.berlios.de/svnroot/repos/dxgettext/trunk/dxgettext/sample/gnugettext.pas&quot; rel=&quot;nofollow&quot;&gt;Delphi 2009 compatible gnugettext.pas&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 18:50:25 +0900</pubDate>
                                </item>
                <item>
            <title>AggPas - C++용 Agg를 오브젝트 파스칼용으로 컨버팅</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15735</link>
            <guid isPermaLink="true">http://simples.kr/15735</guid>
                        <comments>http://simples.kr/15735#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.crossgl.com/aggpas/index.html&quot; target=&quot;_self&quot;&gt;http://www.crossgl.com/aggpas/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;2D 그래픽 관련 라이브러리인 Agg를 파스칼로 포팅한 새로운 라이브러리로 매우 강력합니다.&lt;/p&gt;
&lt;p&gt;정말 대단한 라이브러리입니다.&lt;img src=&quot;http://simples.kr/modules/editor/components/emoticon/tpl/images/msn/msn040.gif&quot; alt=&quot;emoticon&quot; style=&quot;&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/735/015/1.png&quot; alt=&quot;1.png&quot; class=&quot;iePngFix&quot; width=&quot;484&quot; height=&quot;354&quot; style=&quot;&quot; /&gt; &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 18:46:48 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Delphi 2009 GDI+ Library</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15733</link>
            <guid isPermaLink="true">http://simples.kr/15733</guid>
                        <comments>http://simples.kr/15733#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://www.bilsen.com/gdiplus/index.shtml&quot;&gt;http://www.bilsen.com/gdiplus/index.shtml&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;델파이에서 GDI+ 를 사용하기 위한 라이브러리로써 엠바카데로 사이트에서도 링크가 걸려있으니 괞찮은 라이브러리로 보입니다.&lt;/p&gt;&lt;p&gt;사이트를 둘러 보시면 다른 좋은 예제도 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 18:42:05 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>TJvThread를 절대로 쓰면 안되는 이유</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15657</link>
            <guid isPermaLink="true">http://simples.kr/15657</guid>
                        <comments>http://simples.kr/15657#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;회사에서 작업을 하다가 TJvThread 라는 Jedi에서 제공해주는 매우 편리한 클래스가 있어서 계속해서 사용하고&lt;br /&gt;있었는데 끝에가서는 매우 심각한 문제를 하나 발견하였습니다.&lt;br /&gt;그래서 결국에는 기본 스레드 라이브러리로 바꿔야 할 상황이 발생하였는데 이에 대해서 설명을 해볼까 합니다.&lt;br /&gt;( 아무래도 Jedi 라이브러리가 좀 오래되다보니 이제는 기본 VCL 클래스가 훨씬 구현이 잘 되어 있습니다. )&lt;br /&gt;&lt;br /&gt;문제가 발생하는 코드는 다음과 같습니다.&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;&amp;nbsp; TForm2 = class(TForm)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; JvBackgroundWorkThread: TJvThread;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; ................................&lt;br /&gt;&lt;br /&gt;procedure TForm2.FormCreate(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; ReportMemoryLeaksOnShutdown := True;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Application.Terminate;&lt;br /&gt;&amp;nbsp; JvBackgroundWorkThread.Execute(Nil);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm2.FormDestroy(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; JvBackgroundWorkThread.Terminate;&lt;br /&gt;&amp;nbsp; JvBackgroundWorkThread.WaitFor;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm2.JvBackgroundWorkThreadExecute(Sender: TObject; Params: Pointer);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; dwOldTime: DWORD;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; while True do&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dwOldTime := GetTickCount;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while True do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (GetTickCount - dwOldTime) &amp;gt;= 1000 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if JvBackgroundWorkThread.Terminated then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;일단 JvBackgroundWorkThreadExecute 메소드를 보면 if (GetTickCount - dwOldTime) &amp;gt;= 1000 then 에서&lt;br /&gt;break를 하긴 하지만 결과적으로 또 중첩 while문에 의해 다시 저 루프안으로 또 들어가게 되어 있습니다.&lt;br /&gt;사실 1초당 어떠한 작업을 해주는 코드가 들어가 있었는데 공개적으로 소스를 올려야 하기 때문에 제가&lt;br /&gt;일부분에 내용을 지운것이구요.&lt;br /&gt;&lt;br /&gt;FormCreate 부분에 ReportMemoryLeaksOnShutdown := True; 를 주목하셔야 됩니다.&lt;br /&gt;프로그램 종료 시 메모리릭을 체크하도록 하였습니다.&lt;br /&gt;그 다음에는 Application.Terminate;를 호출합니다. 조금 어색해보일수 있지만 이 작업은 매우 안전합니다.&lt;br /&gt;단순히 내부적으로 PostQuiteMessage를 날리기만 하며 바로 폼이 종료되도록 요청하게 됩니다.&lt;br /&gt;&lt;br /&gt;그리고 그 다음에는 JvBackgroundWorkThread.Execute(Nil); 함수를 호출하여 실제 스레드를 호출합니다.&lt;br /&gt;&lt;br /&gt;이제 스레드는 동작할것이며 스레드는 JvBackgroundWorkThread.Terminated 를 멤버변수를 계속해서 체크하여&lt;br /&gt;종료할지 여부를 결정합니다.&lt;br /&gt;&lt;br /&gt;이제 FormDestroy로 가봅니다.&lt;br /&gt;JvBackgroundWorkThread.Terminate; 를 처음에 호출합니다.&lt;br /&gt;이 작업은 TJvThread가 가지고 있는 스레드목록들에 대해서 모두 Terminated 변수를 True로 바꿔주는 역할을 합니다.&lt;br /&gt;( TJvThread는 싱글스레드만 고려한게 아니라 스레드를 리스트로 관리하는 클래스임을 알 수 있습니다. )&lt;br /&gt;&lt;br /&gt;단순히 Terminated 변수만 True로 바꿔서 이제 종료를 알리는 체크를 할뿐입니다.&lt;br /&gt;그 외에 작업을 하지 않습니다.&lt;br /&gt;&lt;br /&gt;이제 가장 중요하고 가장 위험한 함수인 JvBackgroundWorkThread.WaitFor; 를 호출하고 있습니다.&lt;br /&gt;바로 여기가 문제입니다.&lt;br /&gt;Jedi에 WaitFor에 내부구현은 다음과 같습니다.&lt;br /&gt;&lt;br /&gt;procedure TJvThread.WaitFor;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; while OneThreadIsRunning do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.HandleMessage;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;참으로 황당하게 구현이 되어 있죠?&lt;br /&gt;OneThreadIsRunning 은 다음과 같이 구현됩니다.&lt;br /&gt;&lt;br /&gt;function TJvThread.GetOneThreadIsRunning: Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; I: Integer;&lt;br /&gt;&amp;nbsp; List: TList;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; List := FThreads.LockList;&lt;br /&gt;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for I := 0 to List.Count - 1 do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := not TJvBaseThread(List[I]).Finished;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Result then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FThreads.UnlockList;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;스레드 목록을 순회해서 Finished 멤버변수를 체크하여 다 종료되기까지 기다리고 있습니다.&lt;br /&gt;그럼 Finished 멤버변수는 언제 True로 셋팅이 되는지 봐야 됩니다.&lt;br /&gt;&lt;br /&gt;바로 아래에 함수에서 True로 셋팅하게 됩니다.&lt;br /&gt;또한 리스트에서 스레드 오브젝트를 삭제하고 있습니다. ( 객체가 Free되지는 않고 리스트에서만 삭제됩니다. )&lt;br /&gt;&lt;br /&gt;procedure TJvThread.DoTerminate(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; TJvBaseThread(Sender).FExecuteIsActive := False;&lt;br /&gt;&amp;nbsp; if Assigned(FOnFinish) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOnFinish(Sender);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DoTerminate is part of destructor; destructor should not raise exceptions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if TJvBaseThread(Sender).FreeOnTerminate then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FThreads.Remove(Sender);&lt;br /&gt;&amp;nbsp; TJvBaseThread(Sender).FFinished := True;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if Count = 0 then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseThreadDialogForm;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Assigned(FOnFinishAll) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOnFinishAll(Self);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DoTerminate is part of destructor; destructor should not raise exceptions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;그럼 이제 DoTerminate는 어디서 호출이 되는지 봐야 합니다.&lt;br /&gt;&lt;br /&gt;여기서부터 델파이에 내부적인 스레드 생성 개념에 대해서 어느정도 이해를 하고 있어야 합니다.&lt;br /&gt;델파이에서는 내부적으로 TThread로 스레드를 생성할때 스레드가 중지 된 상태로 실행하게 됩니다.&lt;br /&gt;&lt;br /&gt;TThread에 생성자를 보면 다음과 같습니다.&lt;br /&gt;constructor TThread.Create(CreateSuspended: Boolean);&lt;br /&gt;{$IFDEF LINUX}&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; ErrCode: Integer;&lt;br /&gt;{$ENDIF}&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; inherited Create;&lt;br /&gt;&amp;nbsp; FSuspended := CreateSuspended and not FExternalThread;&lt;br /&gt;&amp;nbsp; FCreateSuspended := CreateSuspended and not FExternalThread;&lt;br /&gt;&amp;nbsp; if not FExternalThread then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;{$IFDEF MSWINDOWS}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FHandle := BeginThread(nil, 0, @ThreadProc, Pointer(Self), CREATE_SUSPENDED, FThreadID);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if FHandle = 0 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise EThread.CreateResFmt(@SThreadCreateError, [SysErrorMessage(GetLastError)]);&lt;br /&gt;{$ENDIF}&lt;br /&gt;{$IFDEF LINUX}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sem_init(FCreateSuspendedSem, False, 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ErrCode := BeginThread(nil, @ThreadProc, Pointer(Self), FThreadID);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ErrCode &amp;lt;&amp;gt; 0 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise EThread.CreateResFmt(@SThreadCreateError, [SysErrorMessage(ErrCode)]);&lt;br /&gt;{$ENDIF}&lt;br /&gt;&amp;nbsp; end else&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;{$IFDEF MSWINDOWS}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FHandle := Windows.GetCurrentThread;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FThreadId := Windows.GetCurrentThreadId;&lt;br /&gt;{$ENDIF}&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;BeginThread는 System.pas에 내부적으로 정의 된 함수입니다.&lt;br /&gt;CREATE_SUSPENDED를 넣어주고 있는데 이게 결과적으로 WINAPI에 스레드 생성옵션이 되게 됩니다.&lt;br /&gt;저렇게 하드코딩이 된 상태로 중지 된 상태로 스레드가 만들어집니다.&lt;br /&gt;그렇다면 스레드가 실제로 어디서 실행되는지를 알아야 하는데 TThread에 생성자가 호출되어서 그 생성자에 코드가 실행&lt;br /&gt;된 후에 end;를 만나는 지점에서 실행됩니다. 조금 이해가 안 가실수도 있는데 이것은 AfterConstruction 함수를 오버라이드&lt;br /&gt;함으로써 구현되며 다음과 같은 코드가 생성됩니다.&lt;br /&gt;&lt;br /&gt;Classes.pas.11074: end;&lt;br /&gt;0043DEDB 33C0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xor eax,eax&lt;br /&gt;0043DEDD 5A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop edx&lt;br /&gt;0043DEDE 59&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop ecx&lt;br /&gt;0043DEDF 59&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop ecx&lt;br /&gt;0043DEE0 648910&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov fs:[eax],edx&lt;br /&gt;0043DEE3 68F8DE4300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push $0043def8&lt;br /&gt;0043DEE8 8D45F0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea eax,[ebp-$10]&lt;br /&gt;0043DEEB E88489FCFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call @UStrClr&lt;br /&gt;0043DEF0 C3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret &lt;br /&gt;0043DEF1 E9BE78FCFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jmp @HandleFinally&lt;br /&gt;0043DEF6 EBF0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jmp $0043dee8&lt;br /&gt;0043DEF8 8BC6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov eax,esi&lt;br /&gt;0043DEFA 807DFF00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp byte ptr [ebp-$01],$00&lt;br /&gt;0043DEFE 740F&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jz $0043df0f&lt;br /&gt;0043DF00 E84374FCFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call @AfterConstruction&lt;br /&gt;0043DF05 648F0500000000&amp;nbsp;&amp;nbsp; pop dword ptr fs:[$00000000]&lt;br /&gt;0043DF0C 83C40C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add esp,$0c&lt;br /&gt;0043DF0F 8BC6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov eax,esi&lt;br /&gt;0043DF11 5E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop esi&lt;br /&gt;0043DF12 5B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop ebx&lt;br /&gt;0043DF13 8BE5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov esp,ebp&lt;br /&gt;0043DF15 5D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop ebp&lt;br /&gt;0043DF16 C3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret &lt;br /&gt;0043DF17 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop &lt;br /&gt;&lt;br /&gt;함수에 맨 끝에서 AfterConstruction를 호출하게 되고 결과적으로 다음과 같은 코드에 의해 스레드가 실행되게 됩니다.&lt;br /&gt;procedure TThread.AfterConstruction;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; if not FCreateSuspended and not FExternalThread then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternalStart(True);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;그러나 이 경우에는 실제 TThread를 생성할 때 스레드가 중지되어 있는 상태로 실행할지 아니면 실행중인 상태로&lt;br /&gt;될지에 대해 결정하게 되는데 TJvThread에 경우에는 중지된 상태로 실행되도록 강제하며 AfterConstruction이 아닌&lt;br /&gt;function TJvThread.Execute(P: Pointer): TJvBaseThread; 함수에서&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if FRunOnCreate and Assigned(BaseThread) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resume(BaseThread);&lt;br /&gt;와 같이 스레드를 실행하게 됩니다.&lt;br /&gt;&lt;br /&gt;또한 BeginThread는 내부적으로 ThreadWrapper라는 전역으로 정의 된 System.pas를 스레드 엔트리 포인트로 받아서&lt;br /&gt;실제 사용자에 스레드시작 루틴이 아니라 저 루틴부터 스레드가 실행되며 저기서 다시 Classes.ThreadProc 전역 메소드를&lt;br /&gt;호출하게 되어 실제 사용자에 스레드 루틴을 호출하게 되는 것입니다.&lt;br /&gt;&lt;br /&gt;그럼 다시 아까에 원래의 코드로 돌아가봅니다.&lt;br /&gt;TJvThread에 WaitFor 구문을 이전에 보고 있었고 DoTerminate는 언제 호출되는지 알아야 합니다.&lt;br /&gt;이 함수가 호출 될 때 WaitFor 구문이 끝나게 되기 때문입니다. ( Finished 멤버변수에 값을 여기서 바꾸기 때문에.. )&lt;br /&gt;이 함수는 이전에 말한 ThreadProc에서 호출됩니다.&lt;br /&gt;&lt;br /&gt;다음과 같이 생겼습니다.&lt;br /&gt;function ThreadProc(Thread: TThread): Integer;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; FreeThread: Boolean;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; TThread.FCurrentThread := Thread;&lt;br /&gt;{$IFDEF LINUX}&lt;br /&gt;&amp;nbsp; if Thread.FSuspended then sem_wait(Thread.FCreateSuspendedSem);&lt;br /&gt;{$ENDIF}&lt;br /&gt;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not Thread.Terminated then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.Execute;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.FFatalException := AcquireExceptionObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FreeThread := Thread.FFreeOnTerminate;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := Thread.FReturnValue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.DoTerminate;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.FFinished := True;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SignalSyncEvent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if FreeThread then Thread.Free;&lt;br /&gt;{$IFDEF MSWINDOWS}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndThread(Result);&lt;br /&gt;{$ENDIF}&lt;br /&gt;{$IFDEF LINUX}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Directly call pthread_exit since EndThread will detach the thread causing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the pthread_join in TThread.WaitFor to fail.&amp;nbsp; Also, make sure the EndThreadProc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // is called just like EndThread would do. EndThreadProc should not return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // and call pthread_exit itself.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Assigned(EndThreadProc) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndThreadProc(Result);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pthread_exit(Pointer(Result));&lt;br /&gt;{$ENDIF}&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Thread.Execute; 한 후에 finally 구문에서 DoTerminate 호출해주는것을 볼 수 있습니다.&lt;br /&gt;그리고 멀티스레드에 안전한 작업을 위해 Synchronize를 통해 내부적으로 메인 스레드에게 알리게 됩니다.&lt;br /&gt;&lt;br /&gt;이전에 WaitFor를 하는 함수는 내부적을 HandleMessage 함수를 호출하고 이 함수는 싱크로나이즈 된 함수가&lt;br /&gt;큐잉되었는지 체크하고 ( 내부적으로 리스트로 가지고 있습니다. ) CheckSynchronize를 계속 호출하며&lt;br /&gt;결과적으로 procedure TJvThread.DoTerminate(Sender: TObject); 함수가 호출되어 이 때, FFinished에 멤버변수가 바뀌게&lt;br /&gt;되는 것입니다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;바로 이 부분이 문제입니다. 싱크로나이즈 된 함수가 호출되었고 FFinished에 멤버변수를 바꾸게 되는데&lt;br /&gt;이 변수를 바꿨지만&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; 실제로 이 상황에서는 스레드가 종료 된 상태가 아니라는 것입니다&lt;/span&gt;.&lt;br /&gt;( 싱크로나이즈 함수를 호출한 스레드는 아직 종료가 되지 않을 수 있습니다. 이것은 엄청난 타이밍 문제로 &lt;br /&gt;&amp;nbsp; 발견하기가 매우 힘듭니다.-_- )&lt;br /&gt;&lt;br /&gt;스레드는 계속해서 실행중이며 종료가 되지 않았습니다. 그러나 Jedi에 스레드 라이브러리는 이렇게 종료가 되었다라고&lt;br /&gt;체크를 하고 있습니다.&lt;br /&gt;고로 WaitFor;를 호출한 프로그래머입장에서는 이 WaitFor; 함수에 호출이 끝나는 순간 스레드는 종료가 되어 있다라고&lt;br /&gt;가정해야 하는데 실제로는 함수에 호출이 끝나고 스레드는 계속 실행중인 경우가 생길 수 있습니다.&lt;br /&gt;실제로 WaitFor; 함수를 호출후에 스레드 목록을 보면 Jedi 스레드는 계속 해서 남아있습니다.&lt;br /&gt;( 이건 시스템 상황에 따라 다릅니다. 방금 말햇듯이 타이밍 문제가 있기 때문입니다. )&lt;br /&gt;&lt;br /&gt;심지어 Jedi에 TJvThread는 소멸자에서 조차 스레드에 종료시점을 저런식으로 체크하고 있습니다.&lt;br /&gt;이러한 방법은 스레드에 완벽한 종료시점을 알 수가 없게 되며 타이밍에 의해서 스레드는 계속 해서 실행 된 상태가 될 수가&lt;br /&gt;있고 폼을 종료 시 다음과 같은 치명적인 오류가 랜덤하게 날 수 있습니다.&lt;br /&gt;( 그러나 물리 PC에서는 이것이 보기가 힘듭니다. 제 VMWare PC에서는 해당 예제가 Windows 7에서 동작 시&lt;br /&gt;&amp;nbsp; 에러가 발생할 확률이 매우 높습니다. 물론 랜덤입니다. )&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/657/015/b0072382_4c596446021cb.png&quot; alt=&quot;b0072382_4c596446021cb.png&quot; class=&quot;iePngFix&quot; width=&quot;546&quot; height=&quot;459&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위에 에러는 타이밍에 의해 스레드가 종료되지 않았고 메인 스레드가 종료되면서 맨 마지막으로 FastMM으로&lt;br /&gt;메모리릭을 리포팅해주었으며 메모리릭을 리포팅해주는 그 순간에 스레드가 종료되면서 자기자신을 소멸하게 되는데&lt;br /&gt;이 때 겹쳐서 발생하는 문제로 보입니다.&lt;br /&gt;&lt;br /&gt;스레드가 종료 시 자기자신을 소멸시키는것은 &lt;br /&gt;function ThreadProc(Thread: TThread): Integer; 에서 if FreeThread then Thread.Free; 를 통해 소멸시키게 됩니다.&lt;br /&gt;&lt;br /&gt;따라서 어떠한 경우 메모리릭에 대한 리포팅이 안 나고 바로 정상적으로 종료 된 경우에는 메모리릭을 체크하는 루틴이&lt;br /&gt;실행되기전에 운 좋게 스레드가 종료되었으며 ( 이러한 경우가 거의 99%입니다. ) 메모리릭을 체크하는 루틴이&lt;br /&gt;실행되는 경우에는 아직 스레드 루틴에 if FreeThread then Thread.Free; 가 호출되지 않았기 때문입니다.&lt;br /&gt;&lt;br /&gt;델파이에서 기본으로 제공해주는 스레드 라이브러리는 WaitFor 시 메인 스레드에 한해서 MsgWaitForMultipleObjects&lt;br /&gt;로 스레드 종료를 대기하고, 다른 스레드일 경우 WaitForSingleObject로 대기함으로 완벽한 스레드 종료를 체크하기 때문에&lt;br /&gt;전혀 문제가 없습니다.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 10:39:36 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>IOCP를 이용한 멀티스레드에 동시접근가능한 제네릭 큐</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15655</link>
            <guid isPermaLink="true">http://simples.kr/15655</guid>
                        <comments>http://simples.kr/15655#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;제가 델파이 2010을 사용하면서 언어적으로 마음에 들었던 부분이 Delphi 2009부터 추가 된 제네릭 문법 지원이었습니다.&lt;br /&gt;이와 관련해서 기본적인 제네릭 클래스들이 추가가 되었는데 안타깝게도 멀티 스레드에 안전한 제네릭 큐가 없어서 &lt;br /&gt;임의로 가장&amp;nbsp; 빠르고 쉽게 구현할 수 있는 IOCP를 이용하여 간단한 큐를 만들어보았습니다.&lt;br /&gt;( VC++를 사용하고 계시다면 탬플릿 기반하에 만들어진 Intel TBB에 concurrent_queue와 concurrent_bounded_queue&lt;br /&gt;&amp;nbsp; 를 이용하시면 매우 편하게 동시접근가능한 큐를 사용하실 수 있습니다. &lt;br /&gt;&amp;nbsp; Delphi에 경우에는 OTL - OmniThreadLibrary 이라는 라이브러리가 있는데 아직 잘 알려지지 않았고 어떻게 생겨먹었는&lt;br /&gt;&amp;nbsp; 지도 잘 모릅니다. )&lt;br /&gt;&lt;br /&gt;클래스에 모든 메소드 접근은 멀티 스레드에 안전합니다.&lt;br /&gt;제가 딱 필요로 하는 코드만 들어갔기 때문에 최소한에 기능만 있고 Count가 필요하다면 Interlock 함수로 직접 추가해 &lt;br /&gt;넣으셔야 합니다.&lt;br /&gt;&lt;br /&gt;메소드 이름이 Inteltbb에 concurrent_bounded_queue와 매우 흡사다하는것을 알 수 있습니다.-_-&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; 동시 접근가능한 큐를 구현하기 위해서 간단하게&lt;br /&gt;&amp;nbsp; IOCP를 사용하여 큐잉을 구현하였습니다.&lt;br /&gt;}&lt;br /&gt;unit IOCPQueue;&lt;br /&gt;&lt;br /&gt;interface&lt;br /&gt;&lt;br /&gt;uses Windows, Messages, SysUtils, Variants, Classes;&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;&amp;nbsp; TIOCPQueue&amp;lt;T&amp;gt; = class(TObject)&lt;br /&gt;&amp;nbsp; private&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FIOCPHandle: THandle;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FItemSize: Integer;&lt;br /&gt;&amp;nbsp; public&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; constructor Create; virtual;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; destructor Destroy; override;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure Push(Item: T);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure Pop(var Item: T);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function TryPop(var Item: T): Boolean;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure Clear;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;&lt;br /&gt;{ TIOCPQueue }&lt;br /&gt;&lt;br /&gt;procedure TIOCPQueue&amp;lt;T&amp;gt;.Clear;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; Item: T;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; while True do&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if TryPop(Item) = False then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;constructor TIOCPQueue&amp;lt;T&amp;gt;.Create;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; FIOCPHandle := CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0, 1);&lt;br /&gt;&amp;nbsp; if FIOCPHandle = 0 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RaiseLastOSError;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FItemSize := SizeOf(T);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;destructor TIOCPQueue&amp;lt;T&amp;gt;.Destroy;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Clear;&lt;br /&gt;&amp;nbsp; CloseHandle(FIOCPHandle);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; inherited;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TIOCPQueue&amp;lt;T&amp;gt;.TryPop(var Item: T): Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; NumberOfBytes: DWORD;&lt;br /&gt;&amp;nbsp; CompletionKey: ULONG_PTR;&lt;br /&gt;&amp;nbsp; OverlappedData: POVERLAPPED;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; P: Pointer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; if GetQueuedCompletionStatus(FIOCPHandle, NumberOfBytes, CompletionKey,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OverlappedData, 0) = True then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := True;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; P := Pointer(CompletionKey);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CopyMemory(@Item, P, FItemSize);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FreeMem(P);&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := False;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TIOCPQueue&amp;lt;T&amp;gt;.Pop(var Item: T);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; NumberOfBytes: DWORD;&lt;br /&gt;&amp;nbsp; CompletionKey: ULONG_PTR;&lt;br /&gt;&amp;nbsp; OverlappedData: POVERLAPPED;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; P: Pointer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; if GetQueuedCompletionStatus(FIOCPHandle, NumberOfBytes, CompletionKey,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OverlappedData, INFINITE) = True then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; P := Pointer(CompletionKey);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CopyMemory(@Item, P, FItemSize);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FreeMem(P);&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RaiseLastOSError;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TIOCPQueue&amp;lt;T&amp;gt;.Push(Item: T);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; P: Pointer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; GetMem(P, FItemSize);&lt;br /&gt;&amp;nbsp; CopyMemory(P, @Item, FItemSize);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if PostQueuedCompletionStatus(FIOCPHandle, 0, Integer(P), nil) = False then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RaiseLastOSError;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;end.&lt;br /&gt;&lt;br /&gt;메소드는 간단히 다음과 같이 이루어져 있습니다.&lt;br /&gt;&lt;br /&gt;Clear = 큐에 리스트를 모두 삭제합니다.&lt;br /&gt;TryPop = 큐에 데이터가 있는지 체크하여 있으면 큐에서 꺼내오고 없다면 함수가 실패합니다.&lt;br /&gt;Pop = 큐에 데이터가 있는지 체크하여 있으면 큐에서 꺼내오고 없으면 큐에 데이터가 있을때까지 기다린 후 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 데이터가 들어오면 꺼내옵니다.&lt;br /&gt;Push = 큐에 데이터를 넣습니다. 실패 시 예외를 발생시킵니다.&lt;br /&gt;&lt;br /&gt;다시 말씀드리다시피 위에 메소드들은 모두 멀티스레드 안전합니다.&lt;br /&gt;또한 메모리할당과 해제는 FastMM을 Delphi에서 기본으로 사용하게 되겠죠.&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 10:38:40 +0900</pubDate>
                                </item>
                <item>
            <title>Modal Form에서 ModalResult := 에 값을 넣으면 창이 닫히는 이유</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15649</link>
            <guid isPermaLink="true">http://simples.kr/15649</guid>
                        <comments>http://simples.kr/15649#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;사실 예전부터 그냥 그려러니 하고 아무 생각없이 모달대화상자를 띄우고 창을 닫을 때에는 &lt;br /&gt;ModalResult 에다가 값을 넣어서 창을 닫았었습니다. 그런데 특이하게도 property로 들어가서 어떠한 함수가&lt;br /&gt;호출되어서 창이 닫히겠지하고 생각했는데 실제로 보니 그냥 변수에 값만 바꾸는 것이었습니다.&lt;br /&gt;그런데 변수에 값이 바꼈는데 자동으로 창이 닫히더군요.-_-&lt;br /&gt;&lt;br /&gt;다음은 그 코드입니다.&lt;br /&gt;어셈에서 빨간색으로 된 부분 바로 밑에가 실제 값인 $2를 넣는 부분입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/649/015/b0072382_4c516e5e3e8be.png&quot; alt=&quot;b0072382_4c516e5e3e8be.png&quot; class=&quot;iePngFix&quot; width=&quot;647&quot; height=&quot;180&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;어셈으로 보아도 단순히 값만 바꾸더군요.&lt;br /&gt;혹시나 해서 ShowModal 코드를 보니 바로 답이 보이더군요..&lt;br /&gt;&lt;br /&gt;function TCustomForm.ShowModal: Integer;&lt;br /&gt;에 VCL코드중에서 다음과 같은 부분이 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/649/015/b0072382_4c516ecc8f856.png&quot; alt=&quot;b0072382_4c516ecc8f856.png&quot; class=&quot;iePngFix&quot; width=&quot;499&quot; height=&quot;137&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위에 코드에서 보시면 repeat ~ until 부분이 있는데 이 부분이 제일 중요합니다.&lt;br /&gt;바로 여기서 계속 루프를 돌면서 메세지를 처리하게 되어 있습니다.&lt;br /&gt;그리고 ModalResult를 계속해서 체크를 하죠. 따라서 변수에 값이 바뀌는 순간 타이밍에 의해서 ( 바로 창이 닫히는게 아니라 )&lt;br /&gt;창이 닫히게 되는 것입니다.&lt;br /&gt;또한 코드를 보면 알다시피 모달대화상자에 OnActivate에서 Close 또는 ModalReuslt := ;를 하게 되면&lt;br /&gt;당연히 창이 안 닫힐것입니다. 참고로 Close 함수도 모달대화상자에서는 단순히 내부적으로 ModalReuslt 에 값만 바꿉니다.&lt;br /&gt;&lt;br /&gt;어떻게 보면 그냥 그려러니 하는데 참 신기하게 구현이 되어 있네요.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 10:36:15 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>TBitmap32 비트맵이 서로 같은지 비교</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15647</link>
            <guid isPermaLink="true">http://simples.kr/15647</guid>
                        <comments>http://simples.kr/15647#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;매우 간단합니다. 32Bit 비트맵을 핸들링해보신 분이라면 바로 나오는 코드죠.&lt;br /&gt;&lt;br /&gt;function CompareBitmap32(Bitmap1, Bitmap2: TBitmap32;): Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; P1, P2: PByteArray;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; P1 := PByteArray(Bitmap1.Bits);&lt;br /&gt;&amp;nbsp; P2 := PByteArray(Bitmap2.Bits);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Result := CompareMem(P1, P2, (Bitmap1.Width * Bitmap1.Height * 4));&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;오픈캡쳐에서 그 동안 for 문돌면서 매우 비효율적으로 비트맵을 비교했는데 추가적으로 위에 코드에서&lt;br /&gt;Y좌표부터 스캔하는게 필요해서 다음과 같은 루틴이 만들어졌습니다.&lt;br /&gt;&lt;br /&gt;function CompareBitmap32(Bitmap1, Bitmap2: TBitmap32; YPosition: Integer): Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; StartRange: Integer;&lt;br /&gt;&amp;nbsp; P1, P2: PByteArray;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if Bitmap1 = nil then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if Bitmap2 = nil then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if Bitmap1.Width &amp;lt;&amp;gt; Bitmap2.Width then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if Bitmap1.Height &amp;lt;&amp;gt; Bitmap2.Height then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; P1 := PByteArray(Bitmap1.Bits);&lt;br /&gt;&amp;nbsp; P2 := PByteArray(Bitmap2.Bits);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if (P1 = nil) or (P2 = nil) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; StartRange := Bitmap1.Width * YPosition * 4;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Inc(P1, StartRange);&lt;br /&gt;&amp;nbsp; Inc(P2, StartRange);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Result := CompareMem(P1, P2, (Bitmap1.Width * Bitmap1.Height * 4) - StartRange);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;쓸 때 마다 느끼는거지만 Graphics32 정말 대단한 컴포넌트입니다. 안정성도 뛰어나구요.&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 10:35:10 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>JEDI 제거 후 Delphi 2010 실행 시 Illegal characters in path. 나오는 버그</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15640</link>
            <guid isPermaLink="true">http://simples.kr/15640</guid>
                        <comments>http://simples.kr/15640#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;JEDI를 본격적으로 써보고 있는데 쓸때마다 버그가 계속 발견이 되는군요-_-&lt;br /&gt;JEDI를 제거하면 아마 아래와 같은 메세지가 뜨시는 분들이 있을것입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/640/015/b0072382_4c4ebf4589450.png&quot; alt=&quot;b0072382_4c4ebf4589450.png&quot; class=&quot;iePngFix&quot; width=&quot;563&quot; height=&quot;313&quot; style=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위에 에러메세지가 뜨는 근본적인 이유는 JEDI를 설치할 때 경로에 한글이 들어가 있기 때문입니다.&lt;br /&gt;Delphi 2010 메뉴에 Tools - Options 에 갑니다. 그리고 아래 그림에 주황색으로 표시 된 부분에 주목하세요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;img src=&quot;http://simples.kr/files/attach/images/3772/640/015/b0072382_4c4ebfe23adc0.png&quot; alt=&quot;b0072382_4c4ebfe23adc0.png&quot; class=&quot;iePngFix&quot; width=&quot;837&quot; height=&quot;625&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;위에 주황색으로 표시 된 패스로 설정하는 부분이 3개 있습니다.&lt;br /&gt;그 중에 하나를 고르셔서 클릭해보시면 다음과 같이 경로에 ?? 가 있는거를 볼 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/640/015/b0072382_4c4ec01e7de48.png&quot; alt=&quot;b0072382_4c4ec01e7de48.png&quot; class=&quot;iePngFix&quot; width=&quot;413&quot; height=&quot;311&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;바로 위에 저 경로가 문제인데 저 ??로 되어 있는거를 다 삭제해주시면 됩니다.&lt;br /&gt;제가 그림에서 주황색으로 표시한 패스를 설정하는 부분에 물음표가 있는지 일일이 다 체크하여서 Delete를 해야 합니다.&lt;br /&gt;&lt;br /&gt;결론은 JEDI를 설치할때에는 한글경로가 포함되는 위치에서는 설치하지 않도록 해야 됩니다.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 10:34:28 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Delphi 2010 도움말 위키</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15638</link>
            <guid isPermaLink="true">http://simples.kr/15638</guid>
                        <comments>http://simples.kr/15638#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;아래에 주소에서 볼 수 있습니다. Delphi 2010을 설치해도 도움말이 있긴 한데 웹에서 보는게 더 편하더군요.&lt;br /&gt;( Delphi 2010 도움말과 이 위키에 내용은 동일합니다. )&lt;br /&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Main_Page&quot;&gt;http://docwiki.embarcadero.com/RADStudio/en/Main_Page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;추가로 간략하게 코드샘플도 아래에 주소에서 제공합니다. ( 제가 제네릭 관련 클래스를 쓰다가 참고한 주소입니다. )&lt;br /&gt;물론 도움말에도 있긴 한데 웹에서 보여주는거는 좀 더 문법색상강조가 더 깔끔하게 되어 있습니다.&lt;br /&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://docwiki.embarcadero.com/CodeSamples/en/Category:Delphi&quot;&gt;http://docwiki.embarcadero.com/CodeSamples/en/Category:Delphi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;제가 델파이 기초가 많이 부족해서 시간이 날때 심심하면 한 번씩 도움말을 훓어보는데 &lt;br /&gt;상당히 많은 도움이 되는 것 같네요.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 10:32:32 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>TJvIPAddress 포커스 입력 및 겹쳐져서 그리는 문제 수정</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15635</link>
            <guid isPermaLink="true">http://simples.kr/15635</guid>
                        <comments>http://simples.kr/15635#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;Delphi 2010을 사용하고 있는데 Delphi 2010에서만 나타나는 현상인지는 모르겠습니다.&lt;br /&gt;JEDI에서 제공하는 TJvIPAddress 컴포넌트를 폼에 얹으면 우선 포커스 입력이 되지 않는 문제가 있습니다.&lt;br /&gt;또한 포커스가 입력이 되도록 JVCL 코드를 수정을 하여도 이번에는 아이피를 입력할 때 숫자가 겹쳐져서 나타나는&lt;br /&gt;현상이 있는데 이 모든 사항를 수정하는 방법입니다.&lt;br /&gt;&lt;br /&gt;현재 사용하고 있는 JEDI 버전은 JVCL339CompleteJCL211-Build353입니다.&lt;br /&gt;&lt;br /&gt;아래는 이에 대한 Bug Fixed입니다.&lt;br /&gt;이를 위해서 JVCL 코드를 수정해야 하며 수정해야 하는 파일은 &lt;br /&gt;JVCL339CompleteJCL211-Build3536\jvcl\run\JvComCtrls.pas 입니다.&lt;br /&gt;&lt;br /&gt;procedure TJvIPEditControlHelper.WndProc(var Msg: TMessage);&lt;br /&gt;함수에 맨 마지막줄을 다음과 같이 주석처리합니다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; //with Msg do&lt;br /&gt;&amp;nbsp; //&amp;nbsp; Result := DefWindowProc(Handle, Msg, WParam, LParam);&lt;br /&gt;&lt;br /&gt;그리고 주석처리한 코드 대신에 다음 코드를 넣습니다. 이로써 포커스를 입력받을 수 있습니다.&lt;br /&gt;Dispatch(Msg);&lt;br /&gt;&lt;br /&gt;수정 된 전체 코드는 다음과 같습니다.&lt;br /&gt;procedure TJvIPEditControlHelper.WndProc(var Msg: TMessage);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; case Msg.Msg of&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WM_ENABLE:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if csDesigning in FIPAddress.ComponentState then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {$IFDEF JVCLThemesEnabled}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not FIPAddress.Enabled and ThemeServices.ThemesEnabled then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EnableWindow(Handle, True);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {$ENDIF JVCLThemesEnabled}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WM_DESTROY:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Handle := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WM_KEYFIRST..WM_KEYLAST:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FIPAddress.Dispatch(Msg);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Msg.WParam = VK_TAB then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // mouse messages are sent through TJvIPAddress.WMParentNotify&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; // Fixed bug : Delphi 2010에서 사용 시 마우스 입력 및 키 입력을 받지 못 하는 버그&lt;br /&gt;&amp;nbsp; Dispatch(Msg);&lt;br /&gt;&amp;nbsp; //with Msg do&lt;br /&gt;&amp;nbsp; //&amp;nbsp; Result := DefWindowProc(Handle, Msg, WParam, LParam);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;아이피를 입력할 때 숫자가 겹쳐서 나오는 문제는 윈도우즈 테마가 폼에 적용되어 있을때에만 나타나는 현상으로&lt;br /&gt;procedure TJvIPAddress.WMCtlColorEdit(var Msg: TWMCtlColorEdit);&lt;br /&gt;함수에 있는 코드를 다음에 코드로 변경합니다.&lt;br /&gt;&lt;br /&gt;procedure TJvIPAddress.WMCtlColorEdit(var Msg: TWMCtlColorEdit);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; inherited;&lt;br /&gt;&amp;nbsp; // Fixed Bug : 폼에 XP 테마가 활성화되어 있을 때 아이피를 입력 시 숫자가 겹쳐서&lt;br /&gt;&amp;nbsp; // 보이는 버그 수정&lt;br /&gt;&amp;nbsp; {DC := GetDC(Handle);&lt;br /&gt;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brush.Color := ColorToRGB(Color);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brush.Style := bsSolid;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetTextColor(DC, ColorToRGB(Font.Color));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetBkColor(DC, ColorToRGB(Brush.Color));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetTextColor(Msg.ChildDC, ColorToRGB(Font.Color));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetBkColor(Msg.ChildDC, ColorToRGB(Brush.Color));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetBkMode(Msg.ChildDC, TRANSPARENT);&lt;br /&gt;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReleaseDC(Handle, DC);&lt;br /&gt;&amp;nbsp; end;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; Msg.Result := Brush.Handle;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;WIndows 2000 Server, Windows XP SP3, Windows Vista 64Bit, Windows 7 에서 다 테스트 되었으므로&lt;br /&gt;정상적으로 동작한다라고 보시면 됩니다.&lt;/div&gt;</description>
                        <pubDate>Sun, 15 Aug 2010 10:31:52 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Cheat Engine - 메모리 치트툴</title>
            <dc:creator>esniper</dc:creator>
            <link>http://simples.kr/15535</link>
            <guid isPermaLink="true">http://simples.kr/15535</guid>
                        <comments>http://simples.kr/15535#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;메모리 치트를 할 때 사용하는 치트엔진 입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.cheatengine.org&quot;&gt;http://www.cheatengine.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;델파이 소스까지 공개가 되어있고, 수없이 많은 사람들이 변종을 만들어 내기도 하고 있는 툴입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;보안개발이라는 분야를 공부하는 사람이라면 한번쯤 봐보면 도움이 되겠네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;최근까지도 업데이트 되고 있으며, 치트테이블을 아래와 같은 것도 공유를 하는 코너가 있네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size=&quot;6&quot;&gt;&lt;span style=&quot;FONT-SIZE: 12px&quot;&gt;Starcraft 2 Mineral and Gas&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=&quot;6&quot;&gt;&lt;a href=&quot;http://www.cheatengine.org/tables/moreinfo.php?tid=426&quot;&gt;&lt;span style=&quot;FONT-SIZE: 12px&quot;&gt;http://www.cheatengine.org/tables/moreinfo.php?tid=426&lt;/span&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/535/015/1.gif&quot; alt=&quot;1.gif&quot; width=&quot;530&quot; height=&quot;612&quot; style=&quot;&quot; /&gt; &lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 15:22:32 +0900</pubDate>
                                    <slash:comments>3</slash:comments>
                    </item>
                <item>
            <title>사내 인트라넷용 후이즈 메신저</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15449</link>
            <guid isPermaLink="true">http://simples.kr/15449</guid>
                        <comments>http://simples.kr/15449#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://whoisdesk.net/&quot; target=&quot;_blank&quot;&gt;http://whoisdesk.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;버그가 근데 많습니다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/449/015/msg2_capture_540x430_01.gif&quot; alt=&quot;msg2_capture_540x430_01.gif&quot; width=&quot;540&quot; height=&quot;430&quot; style=&quot;&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Delphi 또는 C++ Bulider입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 10:11:08 +0900</pubDate>
                                    <slash:comments>4</slash:comments>
                    </item>
                <item>
            <title>BlindWrite - 시디 카피 프로텍션 우회</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15445</link>
            <guid isPermaLink="true">http://simples.kr/15445</guid>
                        <comments>http://simples.kr/15445#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.blindwrite.com/&quot;&gt;http://www.blindwrite.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;이 개발자분이 내공이 엄청납니다.-_-&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/445/015/2.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;596&quot; height=&quot;540&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;버전 히스토리에 Delphi 2009로 우리 업그레이드 했다라고 적어놨네요.-_-&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 10:03:27 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>Alcohol 120% - CD, DVD 이미지 생성 및 락 우회</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15441</link>
            <guid isPermaLink="true">http://simples.kr/15441</guid>
                        <comments>http://simples.kr/15441#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.alcohol-soft.com/&quot;&gt;http://www.alcohol-soft.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/441/015/2.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;525&quot; height=&quot;260&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;C++ Builder일 가능성이 매우 높습니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 09:54:03 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>FastStone 관련 시리즈 프로그램들</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15422</link>
            <guid isPermaLink="true">http://simples.kr/15422</guid>
                        <comments>http://simples.kr/15422#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://www.faststone.org/&quot;&gt;http://www.faststone.org/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/422/015/321.png&quot; alt=&quot;321.png&quot; class=&quot;iePngFix&quot; width=&quot;933&quot; height=&quot;690&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Delphi 또는 C++ Builder 입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 09:43:43 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>GuitarPro 5 - 기타 악보 및 가상악기 재생 프로그램</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15418</link>
            <guid isPermaLink="true">http://simples.kr/15418</guid>
                        <comments>http://simples.kr/15418#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;안타깝게도 GuitarPro 6부터는 크로스플랫폼 지원을 위해 Qt로 포팅되었습니다.&lt;/p&gt;&lt;p&gt;그래서 URL은 올리지 않겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/418/015/2.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;1078&quot; height=&quot;828&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Delphi 또는 C++ Bulider 입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 09:37:56 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>ChallengeEdit - Trackmania 블럭믹싱툴</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15414</link>
            <guid isPermaLink="true">http://simples.kr/15414</guid>
                        <comments>http://simples.kr/15414#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://skubidou.free.fr/TrackMania/Progs/&quot;&gt;http://skubidou.free.fr/TrackMania/Progs/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/414/015/2.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;376&quot; height=&quot;551&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Delphi 입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 09:35:04 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>InnoSetup - 편리한 인스톨러 제작 프로그램</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15410</link>
            <guid isPermaLink="true">http://simples.kr/15410</guid>
                        <comments>http://simples.kr/15410#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://www.jrsoftware.org/isinfo.php&quot;&gt;http://www.jrsoftware.org/isinfo.php&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/410/015/2.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;806&quot; height=&quot;563&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Delphi 입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 09:32:40 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>IDA Pro - 최고의 디스어셈블리</title>
            <dc:creator>lain</dc:creator>
            <link>http://simples.kr/15406</link>
            <guid isPermaLink="true">http://simples.kr/15406</guid>
                        <comments>http://simples.kr/15406#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.datarescue.com/&quot; target=&quot;_blank&quot;&gt;http://www.datarescue.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img src=&quot;http://simples.kr/files/attach/images/3772/406/015/2.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;1180&quot; height=&quot;839&quot; style=&quot;&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;C++ Builder 입니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 14 Aug 2010 09:28:08 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
            </channel>
</rss>
