<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://api.springnote.com">
  <identifier type="integer">3714201</identifier>
  <title>Lua HTTP Server + Native Agent</title>
  <relation_is_part_of type="integer">3609257</relation_is_part_of>
  <date_modified type="datetime">2009-06-29T12:11:16Z</date_modified>
  <uri>http://ageldama.springnote.com/pages/3714201</uri>
  <date_created type="datetime">2009-06-28T15:52:41Z</date_created>
  <source>&lt;h1&gt;Lua HTTP Server + Native Agent&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2009/06/29 00:52:49&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;smart-ecm&#51032; native-agent&#51032; &#49352;&#47196;&#50868; &#50500;&#53412;&#53581;&#52432;&#47484; &#49373;&#44033;&#54644;&#45256;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Lua&#51064;&#53552;&#54532;&#47532;&#53552;&#47564;&#51012; &#45236;&#51109;&#54620; .exe&#44032; &#49892;&#54665;&#54616;&#44256; autoexec.lua&#51012; &#49892;&#54665;&#54868;&#51068;&#51060; &#50948;&#52824;&#54620; &#46356;&#47113;&#53664;&#47532;&#50640;&#49436; &#49892;&#54665;.&lt;/li&gt;
&lt;li&gt;&#54596;&#50836;&#54620; lua extension&#51008; &#47784;&#46160; .exe&#50752; &#54632;&#44760; &#48176;&#54252;&#54616;&#44256;, autoexec.lua&#50640;&#49436; &#47196;&#46377;.&lt;/li&gt;
&lt;li&gt;&#49900;&#51648;&#50612; http&#49436;&#48260;&#46020; extension&#51004;&#47196; &#48176;&#54252;&#54616;&#44256; autoexec.lua&#50640;&#49436; &#49884;&#51089;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060;&#47111;&#44172;&#47564; &#46104;&#47732;...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&#51060;&#54980;&#50640; native agent&#51032; &#44592;&#45733;&#51060; &#52628;&#44032;&#46104;&#45908;&#46972;&#46020;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lua extension&#47564; c&#47196; &#51089;&#49457;&#54616;&#44256;&lt;/li&gt;
&lt;li&gt;&#51060;&#44152; autoexec.lua&#50640;&#49436; &#47196;&#46300;&#54616;&#44256;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&#50836;&#52397;&#51012; &#48155;&#51008; lua &#53076;&#46300;&#47484; &#49892;&#54665;&#54980; &#44208;&#44284;&#47484; &#46104;&#46028;&#47532;&#47732; ok&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#45800;&#49692;&#55176; ecm&#50857; native agent&#44032; &#50500;&#45768;&#46972; &#51116;&#49324;&#50857;&#44032;&#45733;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lua Socket :&amp;nbsp;&lt;a href="http://www.tecgraf.puc-rio.br/%7Ediego/professional/luasocket/"&gt;http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;lua-web-server : lua-socket&#51012; &#51060;&#50857;&#54620; &#50696;&#51228;(???) 100&#51460;&#46020; &#50504;&#46104;&#45348;^^;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/lua-web-server/"&gt;http://code.google.com/p/lua-web-server/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;lua 5.0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Lua HTTPD : lua-socket&#51060; &#54596;&#50836;&#50630;&#44400;&#54868;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.steve.org.uk/Software/lua-httpd/"&gt;http://www.steve.org.uk/Software/lua-httpd/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;c&#47196;&#46108; &#48512;&#48516;&#51012; &#51060;&#50857;&#54616;&#45716;&#44396;&#45208;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;the Xavante Lua Web Server&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.keplerproject.org/xavante/"&gt;http://www.keplerproject.org/xavante/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&#54616;&#50501; Kepler Project&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&#47956;&#44032; &#51032;&#51316;&#49457;&#51060; &#47924;&#44161;&#44596;&#54616;&#44396;&#45208;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lua 5.1&lt;/li&gt;
&lt;li&gt;lua-socket&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.keplerproject.org/copas/"&gt;http://www.keplerproject.org/copas/&lt;/a&gt;&amp;nbsp;: copas&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copas&amp;nbsp;is&amp;nbsp;a&amp;nbsp;dispatcher&amp;nbsp;based&amp;nbsp;on&amp;nbsp;coroutines&amp;nbsp;that&amp;nbsp;can&amp;nbsp;be&amp;nbsp;used&amp;nbsp;by&amp;nbsp;TCP/IP&amp;nbsp;servers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&#51228;&#51068;&amp;nbsp;&#50724;&#47000;&#46104;&#44256;, &#51228;&#51068; &#52572;&#44540;&#50640; &#50629;&#45955;&#46108;&#44152;&#47196; &#48400;&#49440; &#51060;&#44152; &#50416;&#45716;&#44172; &#47582;&#51012;&#44163; &#44057;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Lua 5.1 custom interpreter build&lt;/h2&gt;
&lt;p&gt;&#51064;&#53552;&#54532;&#47532;&#53552;&#47484; &#45236;&#51109;&#54620; &#49892;&#54665;&#54868;&#51068;&#51012; &#54616;&#45208; &#47564;&#46308;&#44592;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MS Visual Studio 2008 / C++&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#52649;&#51313;&#54624; &#51312;&#44148;&#51008;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;span class="strike" style=""&gt;&#49884;&#51089;&#54980; &#44057;&#51008; &#50948;&#52824;&#51032; autoexec.lua&#51012; &#54217;&#44032;&#54624;&#44163;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&#49884;&#51089;&#54980; &#54644;&#45817; &#50948;&#52824;&#47196; chdir() (&#54841;&#51008; &#51060;&#54980; &#47196;&#46377;&#54624; &#46356;&#47113;&#53664;&#47532;&#47484; &#51648;&#51221; &#44032;&#45733;&#54624;&#44620;?)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span class="strike" style=""&gt;&#44057;&#51008; &#50948;&#52824;&#51032; lua extension&#51012; &#49892;&#54665;&#49884;&#44036;&#50640; &#47196;&#46377;&#54624;&#49688;&#51080;&#45716; &#54872;&#44221;&#51012; &#51228;&#44277;&#54624;&#44163;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#54532;&#47196;&#53664;&#53440;&#51077;&amp;nbsp;&#54532;&#47196;&#51229;&#53944; &#49464;&#54021;&#51008;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&#45800;&#49692;&#55176; Win32 Console Application&lt;/li&gt;
&lt;li&gt;lua 5.1 &#49548;&#49828;&#50640;&#49436; lua.c, luac.c&#46321;&#51012; &#51228;&#50808;&#54616;&#44256; &#54756;&#45908;, &#49548;&#49828;&#47484; &#47784;&#46160; &#54532;&#47196;&#51229;&#53944;&#50640; &#52628;&#44032;-_-;;;&lt;/li&gt;
&lt;li&gt;&#48324;&#51068; &#50630;&#51060; &#48148;&#47196; &#52980;&#54028;&#51068;/&#47553;&#53356; &#49457;&#44277;-_-b&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;__cdecl&#51060; &#50500;&#45768;&#46972;&#49436; lua_close&#51012; &#47553;&#53356; &#47803;&#54620;&#45796;&#45348;-_-;;; &#51060;&#44144; &#50612;&#46523;&#54616;&#51648; 2009/06/29 01:35:38&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&lt;a href="http://terry51.egloos.com/998726"&gt;http://terry51.egloos.com/998726&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#44288;&#47144; lua.h&#46321;&#51012; #include&#54624;&#46412;...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;extern "C" {&lt;/li&gt;
&lt;li&gt;#include "lua.h"&lt;/li&gt;
&lt;li&gt;#include "lauxlib.h"&lt;/li&gt;
&lt;li&gt;#include "lualib.h"&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;extern "C"&#47196; &#49332;&#54252;&#49884; &#44048;&#49912;&#51452;&#44592;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;"luaL_dofile()"&#47196; &#44057;&#51008; &#46356;&#47113;&#53664;&#47532;&#51032; &#54028;&#51068;&#51012; &#51069;&#45716;&#44148; &#49457;&#44277;&#54620;&#46319; (&#50640;&#47084;&#44032; &#50630;&#45716;&#46319;)&lt;/p&gt;
&lt;p&gt;&#44536;&#47088;&#45936; &#54028;&#51068;&#51032; &#45236;&#50857;&#51012; &#49892;&#54665;&#54616;&#51648; &#47803;&#54616;&#45716;&#44163;&#51004;&#47196; &#48372;&#51060;&#45716;&#45936;?;;; 2009/06/29 01:43:57&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;"luaL_openlibs()"&#51012; &#54840;&#52636;&#54644;&#49436; &#44592;&#48376; &#46972;&#51060;&#48652;&#47084;&#47532;&#47484; &#47196;&#46300;&#54644;&#50556; &#54616;&#45716;&#44396;&#45208;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;luaL_openlibs(L);&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#44536;&#47100;&#50640;&#46020; &#48520;&#44396;&#54616;&#44256; &#50612;&#51704;&#49436; Win32 + MSVC&#50640;&#49436;&#45716; PANIC&#51068;&#44620; 2009/06/29 10:11:19&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#47532;&#45573;&#49828;&#50640;&#49436;&#45716; &#51096; &#44404;&#47084;&#44032;&#45716;&#44396;&#47564;...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;PANIC: unprotected error in call to Lua API (unable to get ModuleFileName)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.naver.com/PostView.nhn?blogId=sinerujin&amp;amp;logNo=60034089717"&gt;http://blog.naver.com/PostView.nhn?blogId=sinerujin&amp;amp;logNo=60034089717&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="lua-shell_mbcs.png" class="attachment" src="/pages/3714201/attachments/1794037" alt="lua-shell_mbcs.png" /&gt;&lt;/p&gt;
&lt;p&gt;VC++&#51032; &#54532;&#47196;&#51229;&#53944; &#49444;&#51221;&#50640;&#49436; &#50976;&#45768;&#53076;&#46300;&#50640;&#49436;&amp;nbsp;MBCS&#47196; &#51204;&#54872;&#54616;&#45768; &#46608; &#46104;&#45716;&#44400;&#54637;-_- 2009/06/29 10:31:35&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#54644;&#44208;: lua 5.1&#50640;&#49436; lua 5.1.4&#47196; &#50629;&#44536;&#47112;&#51060;&#46300; &#54616;&#45768; &#47928;&#51228;&#44032; &#50630;&#45348;-_-;;; 2009/06/29 10:42:51&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;lua-socket extension loading&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/home.html"&gt;http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/home.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#50668;&#44592;&#49436; &#49548;&#49828;&#47484; &#45796;&#50868;&#48155;&#44256;, dll&#47196; &#48716;&#46300;&#54664;&#45796;.&amp;nbsp;&#44592;&#51316; lua-shell&#50640;&#49436; lua&#48512;&#48516;&#51012; static library&#47196; &#48764;&#49436; &#44277;&#50976;&#54616;&#44256;, lua-shell&#51008; &#49548;&#49828; &#54616;&#45208;&#51676;&#47532;&#51064; &#54532;&#47196;&#51229;&#53944;&#47196; &#49688;&#51221;. &#44536;&#47000;&#46020; &#47956;&#44032; &#49892;&#54665;&#49884;&#44036;&#50640; &#47196;&#46377;&#54616;&#45716;&#45936; &#47928;&#51228;&#44032; &#51080;&#45716;&#44152;&#44620;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;lua-socket -&amp;gt; project(lua-socket) -&amp;gt; socket.dll&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-&amp;gt; project(lua-mime) -&amp;gt; mime.dll&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#50640;&#47084;&#44032; &#51080;&#51012;&#46412; &#50640;&#47084;&#45236;&#50857;&#51012; &#50508;&#49688;&#51080;&#45716; &#48169;&#48277;&#51060; &#54596;&#50836;&#54616;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;static int report (lua_State *L, int status) {&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;if (status &amp;amp;&amp;amp; !lua_isnil(L, -1)) {&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;const char *msg = lua_tostring(L, -1);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (msg == NULL) msg = "(error object is not a string)";&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;l_message(progname, msg);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;lua_pop(L, 1);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;return status;&lt;/li&gt;
&lt;li&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#47956;&#44032; &#49828;&#53469;&#50640;&#49436; &#50640;&#47084;&#50752; &#44288;&#47144;&#54620;&#44152; &#44732;&#45240; &#47784;&#50577;&#51060;&#44400;. &#51060;&#47111;&#44172; &#52237;&#51004;&#45768; &#45796;&#51020;&#52376;&#47100;...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;LUA-SHELL: error loading module 'socket.core' from file '.\socket\core.dll':&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#51648;&#51221;&#46108; &#54532;&#47196;&#49884;&#51200;&#47484; &#52286;&#51012; &#49688; &#50630;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;--&amp;gt; &#44036;&#45800;&#54620; .lua &#47784;&#46280;&#51012; &#47564;&#46308;&#50612; &#53580;&#49828;&#53944;&#54644;&#48372;&#45768; &#51221;&#49345;&#51201;&#51004;&#47196; &#51089;&#46041;&#54616;&#45716;&#44152;&#47196;&#48400;&#49436; socket.core&#44032; &#51096;&#47803; &#52980;&#54028;&#51068;&#46108; &#47784;&#46280;&#51060;&#44396;&#45208;... 2009/06/29 12:02:40&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#44208;&#44397; loadlib.c:loader_C()&#54632;&#49688;&#50640;&#49436; &#47784;&#46304;&#44152; &#52376;&#47532;&#54616;&#45716;&#44152; &#50508;&#50520;&#44256;, "msgbox" &#47784;&#46280;&#51068; &#44221;&#50864;&#50640; dll&#51012; &#47196;&#46300;&#54620; &#45796;&#51020;&#50640; luaopen_msgbox_core()&#46972;&#45716; &#54632;&#49688;&#47484; &#54840;&#52636;&#54644; &#54632;&#49688;&#46321;&#51012; &#46321;&#47197;&#54632;&#51012; &#50508;&#50520;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#45796;&#51020;&#44284; &#44057;&#51008; dll&#51012; &#51089;&#49457;&#54664;&#44256;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;#include "stdafx.h"&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;#include "lauxlib.h"&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;/* Pop-up a Windows message box with your choice of message and caption */&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;int lua_msgbox(lua_State* L)&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;{&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;const char* message = luaL_checkstring(L, 1);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;const char* caption = luaL_optstring(L, 2, "");&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int result = MessageBoxA(NULL, message, caption, MB_OK);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;lua_pushnumber(L, result);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 1;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;int __declspec(dllexport) luaopen_msgbox_core (lua_State* L)&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;{&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; lua_register(L, "msgbox", &amp;nbsp;lua_msgbox);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp; return 0;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#45796;&#51020;&#52376;&#47100; &#48520;&#47084;&#45236;&#45768; &#49457;&#44277;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;require("msgbox.core")&lt;/li&gt;
&lt;li&gt;msgbox("OH HAI!", "!!!")&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060;&#44152; socket, mime&#50640;&#46020; &#51201;&#50857;&#54644;&#50556;&#51648;-_- 2009/06/29 20:57:36&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#44208;&#44397; &#45796;&#47480; &#54632;&#49688;&#45716; &#46168;&#51704;&#52824;&#44256;, luaopen_msgbox_core()&#54632;&#49688;&#50640;&#47564; &#45796;&#51020;&#52376;&#47100; &#49440;&#50616;&#54616;&#47732; &#46104;&#45716;&#44144;&#50688;&#51020;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;int __declspec(dllexport) luaopen_msgbox_core (lua_State* L)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(&#54632;&#49688;&#50896;&#54805;&#50640;&#46972;&#46020;...)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#44208;&#44397; lua-socket&#50640;&#49436; mime, socket&#51012; &#44033;&#44033; &#48516;&#47532;&#54644;&#45236;&#44256; &#48716;&#46300;&amp;amp;&#49892;&#54665;&#49457;&#44277; &#54616;&#50501;...&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;-- socket&lt;/li&gt;
&lt;li&gt;socket = require("socket")&lt;/li&gt;
&lt;li&gt;print(socket._VERSION)&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;-- mime&lt;/li&gt;
&lt;li&gt;mime = require("mime")&lt;/li&gt;
&lt;li&gt;print(mime._VERSION)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h5&gt;extension loading &#44508;&#52825;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;.lua &#49548;&#49828;&#45716; &#44057;&#51008; &#46356;&#47113;&#53664;&#47532;&#51032; lua/ &#51060;&#54980;&#50640;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lua/socket.lua&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;.dll &#54869;&#51109;&#51008; &#51312;&#44552;&#50473; &#45796;&#47476;&#51648;&#47564; &#44536;&#45285; &#44057;&#51008; &#46356;&#47113;&#53664;&#47532;&#50640; &#50696;&#47484; &#46308;&#50612; socket.core &#54869;&#51109;&#51008;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;socket/core.dll&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</source>
  <rights>by-nc-nd</rights>
  <creator>http://ageldama.myid.net/</creator>
  <contributor_modified>http://ageldama.myid.net/</contributor_modified>
  <version type="integer">71</version>
  <tags>lua,windows,win32,native,agent,executable,dll,shared,library,build,extension,script,scripting</tags>
</page>
