1 °³¿ä
2 Lua Interface Áغñ
¹ÙÀεù ¶óÀ̺귯¸®°¡ ¾ó¸¶³ª ÀÖ´ÂÁö´Â ¸ð¸£°ÚÁö¸¸, ÀÏ´Ü
Lua Interface°¡ °ÅÀÇ Ç¥ÁØ(?)À¸·Î ÀÚ¸®ÀâÀº ¸ð¾çÀÌ´Ù. ¹èÆ÷º» ¹Þ¾Æ¼ ¾îµò°¡¿¡ Àû´çÈ÷ Ç®¾îµÐ´Ù.
C# ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç ´ÙÀ½¿¡, ½ÇÇà ÆÄÀÏÀÌ »ý±â´Â µð·ºÅ丮¿¡´Ù ¹èÆ÷º» ¾ÈÀÇ bin µð·ºÅ丮¿¡ ÀÖ´Â DLL ÆÄÀϵéÀ» º¹»çÇÑ´Ù. ¾Æ·¡ÀÇ ±×¸²¿¡¼ º¸´Ù½ÃÇÇ º¹»çÇØ¾ßÇÒ DLL ÆÄÀÏÀº lua50.dll, luainterface.dll, luanet.dll ÀÌ´Ù.
±× ´ÙÀ½ ÂüÁ¶ Ç׸ñÀ¸·Î °¡¼ LuaInterface.dllÀ» Ãß°¡ÇÑ´Ù. "ÂüÁ¶" ³ëµå¸¦ ¿À¸¥ÂÊ Å¬¸¯Çؼ, "ÂüÁ¶ Ãß°¡"¸¦ ¼±ÅÃÇÏ¸é ´ëÈâÀÌ ¶ß´Âµ¥, "ã¾Æº¸±â" ÅÇ¿¡¼ ÇØ´ç DLL ÆÄÀÏÀ» ÁöÁ¤ÇÏ¸é µÈ´Ù.
À̰ɷΠÁغñ ³¡ÀÌ´Ù. Ç㹫ÇÒ Á¤µµ·Î ½±´Ù.
3 »ùÇÃ
¹öưÀ» Ŭ¸¯ÇÏ¸é ½ºÅ©¸³Æ® ÆÄÀÏÀ» ½ÇÇàÇϰí, ½ºÅ©¸³Æ®¿¡¼´Â C# ÂÊ¿¡ Àִ Ŭ·¡½º °´Ã¼¸¦ »ý¼ºÇؼ ´Ù½Ã C# ÂÊÀ¸·Î µ¹·ÁÁÖ°í, C# ÂÊ¿¡¼´Â ·ç¾Æ ÂÊ¿¡¼ ¹ÞÀº °´Ã¼¿¡ ´ëÇÑ Á¤º¸¸¦ ȸ鿡 Ãâ·ÂÇÏ´Â »ùÇÃ.
MainForm.cs
...»ý·«...
using LuaInterface;
namespace LuaTest
{
public partial class MainForm : Form
{
Lua LuaState = new Lua();
List<Person> PeopleList = new List<Person>();
bool FirstTime = true;
public void AddPersonToParty(Person p)
{
PeopleList.Add(p);
}
public MainForm()
{
InitializeComponent();
LuaState.RegisterFunction("JoinParty", this, GetType().GetMethod("AddPersonToParty"));
}
private void TestButton_Click(object sender, EventArgs e)
{
if (FirstTime)
{
LuaState.DoFile("script.lua");
Person p = PeopleList[0];
ListViewItem item = new ListViewItem();
item.Text = p.Name;
item.SubItems.Add(p.Description);
PeopleListView.Items.Add(item);
FirstTime = false;
}
}
}
public class Person
{
public string Name = "";
public string Description = "";
};
} script.lua
luanet.load_assembly("LuaTest");
Person = luanet.import_type("LuaTest.Person");
p = Person()
p.Name = "steve"
p.Description = "There's Steve drinking something brown and frothy from a shoe."
JoinParty(p)
4 ¸µÅ©
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)