Re: Trivial pointers result in unregistered class
rod haxton <[email protected]> Tue, 18 Jun 2013 14:07:40 -0400
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <CALz8gR98672fLTMs2H-ppSvKrBGvCk5foT8gf-RW3jAsw8w_hA@mail.gmail.com> |
--===============9150825358520609573==
Content-Type: multipart/alternative; boundary=047d7bd763fcbff45304df7196ea
--047d7bd763fcbff45304df7196ea
Content-Type: text/plain; charset=ISO-8859-1
Can you try...
void setA(int nVal) { A = &nVal; }
int* getA(void) const { return A; }
static void registrate(lua_State *pLuaState)
{
// export our class with LuaBind
luabind::module(pLuaState) [
luabind::class_<Foo>("Foo")
.property("A", &Foo::getVal, &Foo::setVal)
];
}
public:
int *A;
LUA Script...
a = Foo.A
Foo.A = 10
On Tue, Jun 18, 2013 at 1:11 PM, Daniel Walter <
[email protected]> wrote:
> I think this does not fit my needs. "FooManager" does not have any
> public pointers that need to be accessed directly by lua. You are
> accessing your pointers through "getComponent" function.
>
> Can you expose "m_iFooVector" with something like this:
> ".def_readonly("iFooVector", &FooManager::m_iFooVector,
> luabind::return_stl_iterator)"
>
> And then iterate and access it in your lua script?
>
> for foo in fooManager.iFooVector do
> print(foo.AnyField)
> end
>
> On 18.06.2013 19:01, rod haxton wrote:
> > Take a look at this. I do this and it works with a boost::ref on class,
> > see "FooManager".
> >
> > I know...I know...I hate when folks give you a lot of code to look at
> > for an example. But, perhaps you can glean something from looking at the
> > "FooManager" class, and see that I assign it as a global.
> >
> > //The registrate function takes a Class
> > // name and lua_State, then calls its registrate method
> > template <typename T>
> > void registrate(lua_State *pLuaState) {
> > T::registrate(pLuaState);
> > }
> >
> >
> > class FooManager
> > {
> > public:
> > FooManager() {};
> > ~FooManager() {};
> >
> > voidaddComponent(IFoo* pFoo) { m_iFooVector.push_back(pFoo); }
> > IFoo*getComponent(int nIndex) { return m_iFooVector[nIndex]; }
> >
> > static void registrate(lua_State *pLuaState)
> > {
> > luabind::module(pLuaState) [
> > luabind::class_<FooManager>("FooManager")
> > .def(luabind::constructor<>())
> > .def("getComponent", (IFoo*(FooManager::*) (int))
> &FooManager::getComponent)
> > ];
> > }
> >
> > void doAwake(void)
> > {
> > for(std::vector<IFoo*>::iterator it = m_iFooVector.begin(); it !=
> > m_iFooVector.end(); it++)
> > {
> > IFoo *pIFoo = *it;
> > pIFoo->Awake();
> > }
> > }
> >
> > void doUpdate(void)
> > {
> > for(std::vector<IFoo*>::iterator it = m_iFooVector.begin(); it !=
> > m_iFooVector.end(); it++)
> > {
> > IFoo *pIFoo = *it;
> > pIFoo->update();
> > }
> > }
> >
> > private:
> > std::vector<IFoo*> m_iFooVector;
> > };
> >
> > int main()
> > {
> > lua_State *myLuaState = luaL_newstate();
> >
> > // Connect LuaBind to this lua state
> > luabind::open(myLuaState);
> >
> > // open the lua libraries
> > luaL_openlibs(myLuaState);
> >
> > // register the luaBind classes
> > registrate<IFoo>(myLuaState);
> > registrate<Foo>(myLuaState);
> > registrate<Foo2>(myLuaState);
> > registrate<FooManager>(myLuaState);
> >
> > // create all the objects
> > Foo *pFoo = new Foo("Rod's Test: 1-2-3!", myLuaState);
> > Foo2 *pFoo2 = new Foo2("Zimba", myLuaState);
> > FooManager* pfooManager = new FooManager();
> >
> > pfooManager->addComponent(pFoo);
> > pfooManager->addComponent(pFoo2);
> > // set object manager global
> > luabind::globals(myLuaState)["fooManager"] = boost::ref(pfooManager);
> >
> > //reh 16jun13 the Game Manager will also pass the Instigator to the
> > call, i.e., doAwake(theInstigator). This way the object has the object
> > interacting with it.
> > pfooManager->doAwake();
> > pfooManager->doUpdate();
> >
> > lua_close(myLuaState);
> > // clean up
> > delete pFoo;
> > delete pFoo2;
> >
> > return 0;
> > }
> >
> >
> > On Tue, Jun 18, 2013 at 12:42 PM, Daniel Walter
> > <[email protected] <mailto:[email protected]>>
> > wrote:
> >
> > hi rod,
> > thank you for your answer.
> > what about the struct "A" in my example? In my project I can not
> change
> > struct "A" to use boost::ref or any getters. Of course, I could
> write a
> > wrapper class, but this hurts.
> >
> > Is there any other way?
> >
> >
> > On 18.06.2013 18:17, rod haxton wrote:
> > > give boost:ref a try...
> > >
> > > luabind::globals(L)["x"] = boost::ref(x);
> > >
> > >
> > > On Tue, Jun 18, 2013 at 10:41 AM, Daniel Walter
> > > <[email protected]
> > <mailto:[email protected]>
> > <mailto:[email protected]
> > <mailto:[email protected]>>>
> > > wrote:
> > >
> > > Hi folks,
> > >
> > > I have a struct with some pointers to trivial datatypes like
> > this:
> > >
> > > struct A {
> > > int* x;
> > > int* y;
> > > };
> > >
> > > I bound it to lua like this:
> > >
> > > luabind::module(L)
> > > [
> > > luabind::class_<A>("A")
> > > .def_readonly("x", &A::x)
> > > .def_readonly("y", &A::y)
> > > ];
> > >
> > > If I am using this class in my lua script the runtime throws
> this
> > > exception: "Trying to use unregistered class"
> > > I managed this using a getter function returning the
> dereferenced
> > > pointer, but there must be a better way.
> > >
> > > The same exception happens when i am using such an trivial
> > pointer
> > > directly:
> > >
> > > int* x = new int(42);
> > > luabind::globals(L)["x"] = x;
> > >
> > > How to handle this? What i am missing?
> > >
> > > Thanks in advance,
> > > Daniel
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > This SF.net email is sponsored by Windows:
> > >
> > > Build for Windows Store.
> > >
> > > http://p.sf.net/sfu/windows-dev2dev
> > > _______________________________________________
> > > luabind-user mailing list
> > > [email protected]
> > <mailto:[email protected]>
> > > <mailto:[email protected]
> > <mailto:[email protected]>>
> > > https://lists.sourceforge.net/lists/listinfo/luabind-user
> > >
> > >
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > This SF.net email is sponsored by Windows:
> > >
> > > Build for Windows Store.
> > >
> > > http://p.sf.net/sfu/windows-dev2dev
> > >
> > >
> > >
> > > _______________________________________________
> > > luabind-user mailing list
> > > [email protected]
> > <mailto:[email protected]>
> > > https://lists.sourceforge.net/lists/listinfo/luabind-user
> > >
> >
> >
> ------------------------------------------------------------------------------
> > This SF.net email is sponsored by Windows:
> >
> > Build for Windows Store.
> >
> > http://p.sf.net/sfu/windows-dev2dev
> > _______________________________________________
> > luabind-user mailing list
> > [email protected]
> > <mailto:[email protected]>
> > https://lists.sourceforge.net/lists/listinfo/luabind-user
> >
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > This SF.net email is sponsored by Windows:
> >
> > Build for Windows Store.
> >
> > http://p.sf.net/sfu/windows-dev2dev
> >
> >
> >
> > _______________________________________________
> > luabind-user mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/luabind-user
> >
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
>
> Build for Windows Store.
>
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> luabind-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/luabind-user
>
--047d7bd763fcbff45304df7196ea
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Can you try...<div><br></div><div><div><span class=3D"" st=
yle=3D"white-space:pre"> </span>void<span class=3D"" style=3D"white-space:p=
re"> </span>setA(int nVal) { A =3D &nVal; }</div><div><span class=3D"" =
style=3D"white-space:pre"> </span>int*<span class=3D"" style=3D"white-space=
:pre"> </span>getA(void) const { return A; }</div>
<div><br></div><div><span class=3D"" style=3D"white-space:pre"> </span>stat=
ic void registrate(lua_State *pLuaState)</div><div><span class=3D"" style=
=3D"white-space:pre"> </span>{</div><div><span class=3D"" style=3D"white-sp=
ace:pre"> </span>// export our class with LuaBind</div>
<div><span class=3D"" style=3D"white-space:pre"> </span>luabind::module(pL=
uaState) [</div><div><span class=3D"" style=3D"white-space:pre"> </span>l=
uabind::class_<Foo>("Foo")</div><div><span class=3D"" style=
=3D"white-space:pre"> </span>.property("A", &Foo::getVal, &=
amp;Foo::setVal)<br>
</div><div><span class=3D"" style=3D"white-space:pre"> </span>];</div><div=
><span class=3D"" style=3D"white-space:pre"> </span>}</div><div><br></div><=
div style>public:</div><div><span class=3D"" style=3D"white-space:pre"> </s=
pan>int *A;</div>
</div><div><br></div><div style>LUA Script...</div><div style><br></div><di=
v style>a =3D Foo.A</div><div style>Foo.A =3D 10</div></div><div class=3D"g=
mail_extra"><br><br><div class=3D"gmail_quote">On Tue, Jun 18, 2013 at 1:11=
PM, Daniel Walter <span dir=3D"ltr"><<a href=3D"mailto:daniel.walter@he=
lmundwalter.de" target=3D"_blank">[email protected]</a>></s=
pan> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">I think this does not fit my needs. "Fo=
oManager" does not have any<br>
public pointers that need to be accessed directly by lua. You are<br>
accessing your pointers through "getComponent" function.<br>
<br>
Can you expose "m_iFooVector" with something like this:<br>
".def_readonly("iFooVector", &FooManager::m_iFooVector,<=
br>
luabind::return_stl_iterator)"<br>
<br>
And then iterate and access it in your lua script?<br>
<br>
for foo in fooManager.iFooVector do<br>
=A0 =A0 =A0 =A0 print(foo.AnyField)<br>
end<br>
<div class=3D"im"><br>
On 18.06.2013 19:01, rod haxton wrote:<br>
> Take a look at this. I do this and it works with a boost::ref on class=
,<br>
> see "FooManager".<br>
><br>
> I know...I know...I hate when folks give you a lot of code to look at<=
br>
> for an example. But, perhaps you can glean something from looking at t=
he<br>
> "FooManager" class, and see that I assign it as a global.<br=
>
><br>
> //The registrate function takes a Class<br>
> // name and lua_State, then calls its registrate method<br>
> template <typename T><br>
> void registrate(lua_State *pLuaState) {<br>
> T::registrate(pLuaState);<br>
> }<br>
><br>
><br>
> class FooManager<br>
> {<br>
> public:<br>
> FooManager() {};<br>
> ~FooManager() {};<br>
><br>
> voidaddComponent(IFoo* pFoo) { m_iFooVector.push_back(pFoo); }<br>
</div>> IFoo*getComponent(int nIndex) { return m_iFooVector[nIndex]; }<b=
r>
<div><div class=3D"h5">><br>
> static void registrate(lua_State *pLuaState)<br>
> {<br>
> luabind::module(pLuaState) [<br>
> luabind::class_<FooManager>("FooManager")<br>
> .def(luabind::constructor<>())<br>
> .def("getComponent", (IFoo*(FooManager::*) (int)) &FooMa=
nager::getComponent)<br>
> ];<br>
> }<br>
><br>
> void doAwake(void)<br>
> {<br>
> for(std::vector<IFoo*>::iterator it =3D m_iFooVector.begin(); it=
!=3D<br>
> m_iFooVector.end(); it++)<br>
> {<br>
> IFoo *pIFoo =3D *it;<br>
> pIFoo->Awake();<br>
> }<br>
> }<br>
><br>
> void doUpdate(void)<br>
> {<br>
> for(std::vector<IFoo*>::iterator it =3D m_iFooVector.begin(); it=
!=3D<br>
> m_iFooVector.end(); it++)<br>
> {<br>
> IFoo *pIFoo =3D *it;<br>
> pIFoo->update();<br>
> }<br>
> }<br>
><br>
> private:<br>
> std::vector<IFoo*> m_iFooVector;<br>
> };<br>
><br>
> int main()<br>
> {<br>
> lua_State *myLuaState =3D luaL_newstate();<br>
><br>
> // Connect LuaBind to this lua state<br>
> luabind::open(myLuaState);<br>
><br>
> // open the lua libraries<br>
> luaL_openlibs(myLuaState);<br>
><br>
> // register the luaBind classes<br>
> registrate<IFoo>(myLuaState);<br>
> registrate<Foo>(myLuaState);<br>
> registrate<Foo2>(myLuaState);<br>
> registrate<FooManager>(myLuaState);<br>
><br>
> // create all the objects<br>
> Foo *pFoo =3D new Foo("Rod's Test: 1-2-3!", myLuaState);=
<br>
> Foo2 *pFoo2 =3D new Foo2("Zimba", myLuaState);<br>
> FooManager* pfooManager =3D new FooManager();<br>
><br>
> pfooManager->addComponent(pFoo);<br>
> pfooManager->addComponent(pFoo2);<br>
> // set object manager global<br>
> luabind::globals(myLuaState)["fooManager"] =3D boost::ref(pf=
ooManager);<br>
><br>
> //reh 16jun13 the Game Manager will also pass the Instigator to the<br=
>
> call, i.e., doAwake(theInstigator). This way the object has the object=
<br>
> interacting with it.<br>
> pfooManager->doAwake();<br>
> pfooManager->doUpdate();<br>
><br>
> lua_close(myLuaState);<br>
> // clean up<br>
> delete pFoo;<br>
> delete pFoo2;<br>
><br>
> return 0;<br>
> }<br>
><br>
><br>
> On Tue, Jun 18, 2013 at 12:42 PM, Daniel Walter<br>
</div></div>> <<a href=3D"mailto:[email protected]">dani=
[email protected]</a> <mailto:<a href=3D"mailto:daniel.walter@h=
elmundwalter.de">[email protected]</a>>><br>
<div class=3D"im">> wrote:<br>
><br>
> =A0 =A0 hi rod,<br>
> =A0 =A0 thank you for your answer.<br>
> =A0 =A0 what about the struct "A" in my example? In my proje=
ct I can not change<br>
> =A0 =A0 struct "A" to use boost::ref or any getters. Of cour=
se, I could write a<br>
> =A0 =A0 wrapper class, but this hurts.<br>
><br>
> =A0 =A0 Is there any other way?<br>
><br>
><br>
> =A0 =A0 On 18.06.2013 18:17, rod haxton wrote:<br>
> =A0 =A0 =A0> give boost:ref a try...<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> luabind::globals(L)["x"] =3D boost::ref(x);<=
br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> On Tue, Jun 18, 2013 at 10:41 AM, Daniel Walter<br>
> =A0 =A0 =A0> <<a href=3D"mailto:[email protected]">=
[email protected]</a><br>
> =A0 =A0 <mailto:<a href=3D"mailto:[email protected]">d=
[email protected]</a>><br>
</div>> =A0 =A0 <mailto:<a href=3D"mailto:daniel.walter@helmundwalter=
.de">[email protected]</a><br>
<div><div class=3D"h5">> =A0 =A0 <mailto:<a href=3D"mailto:daniel.wal=
[email protected]">[email protected]</a>>>><br>
> =A0 =A0 =A0> wrote:<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 Hi folks,<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 I have a struct with some pointers to trivial =
datatypes like<br>
> =A0 =A0 this:<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 struct A {<br>
> =A0 =A0 =A0> =A0 =A0 =A0 =A0 =A0 int* x;<br>
> =A0 =A0 =A0> =A0 =A0 =A0 =A0 =A0 int* y;<br>
> =A0 =A0 =A0> =A0 =A0 };<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 I bound it to lua like this:<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 luabind::module(L)<br>
> =A0 =A0 =A0> =A0 =A0 [<br>
> =A0 =A0 =A0> =A0 =A0 =A0 =A0 =A0 =A0luabind::class_<A>("=
A")<br>
> =A0 =A0 =A0> =A0 =A0 =A0 =A0 =A0 .def_readonly("x", &=
A::x)<br>
> =A0 =A0 =A0> =A0 =A0 =A0 =A0 =A0 .def_readonly("y", &=
A::y)<br>
> =A0 =A0 =A0> =A0 =A0 ];<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 If I am using this class in my lua script the =
runtime throws this<br>
> =A0 =A0 =A0> =A0 =A0 exception: "Trying to use unregistered cl=
ass"<br>
> =A0 =A0 =A0> =A0 =A0 I managed this using a getter function returni=
ng the dereferenced<br>
> =A0 =A0 =A0> =A0 =A0 pointer, but there must be a better way.<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 The same exception happens when i am using suc=
h an trivial<br>
> =A0 =A0 pointer<br>
> =A0 =A0 =A0> =A0 =A0 directly:<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 int* x =3D new int(42);<br>
> =A0 =A0 =A0> =A0 =A0 luabind::globals(L)["x"] =3D x;<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 How to handle this? What i am missing?<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 Thanks in advance,<br>
> =A0 =A0 =A0> =A0 =A0 Daniel<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 --------------------------------------------------------------=
----------------<br>
> =A0 =A0 =A0> =A0 =A0 This SF.net email is sponsored by Windows:<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> =A0 =A0 Build for Windows Store.<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=
=3D"_blank">http://p.sf.net/sfu/windows-dev2dev</a><br>
> =A0 =A0 =A0> =A0 =A0 ______________________________________________=
_<br>
> =A0 =A0 =A0> =A0 =A0 luabind-user mailing list<br>
> =A0 =A0 =A0> <a href=3D"mailto:[email protected]">=
[email protected]</a><br>
> =A0 =A0 <mailto:<a href=3D"mailto:[email protected]=
t">[email protected]</a>><br>
</div></div>> =A0 =A0 =A0> =A0 =A0 <mailto:<a href=3D"mailto:luabi=
[email protected]">[email protected]</a><br>
<div class=3D"HOEnZb"><div class=3D"h5">> =A0 =A0 <mailto:<a href=3D"=
mailto:[email protected]">[email protected]=
et</a>>><br>
> =A0 =A0 =A0> <a href=3D"https://lists.sourceforge.net/lists/listinf=
o/luabind-user" target=3D"_blank">https://lists.sourceforge.net/lists/listi=
nfo/luabind-user</a><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 --------------------------------------------------------------=
----------------<br>
> =A0 =A0 =A0> This SF.net email is sponsored by Windows:<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> Build for Windows Store.<br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=
=3D"_blank">http://p.sf.net/sfu/windows-dev2dev</a><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0><br>
> =A0 =A0 =A0> _______________________________________________<br>
> =A0 =A0 =A0> luabind-user mailing list<br>
> =A0 =A0 =A0> <a href=3D"mailto:[email protected]">=
[email protected]</a><br>
> =A0 =A0 <mailto:<a href=3D"mailto:[email protected]=
t">[email protected]</a>><br>
> =A0 =A0 =A0> <a href=3D"https://lists.sourceforge.net/lists/listinf=
o/luabind-user" target=3D"_blank">https://lists.sourceforge.net/lists/listi=
nfo/luabind-user</a><br>
> =A0 =A0 =A0><br>
><br>
> =A0 =A0 --------------------------------------------------------------=
----------------<br>
> =A0 =A0 This SF.net email is sponsored by Windows:<br>
><br>
> =A0 =A0 Build for Windows Store.<br>
><br>
> =A0 =A0 <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=3D"_bla=
nk">http://p.sf.net/sfu/windows-dev2dev</a><br>
> =A0 =A0 _______________________________________________<br>
> =A0 =A0 luabind-user mailing list<br>
> =A0 =A0 <a href=3D"mailto:[email protected]">luabind-=
[email protected]</a><br>
> =A0 =A0 <mailto:<a href=3D"mailto:[email protected]=
t">[email protected]</a>><br>
> =A0 =A0 <a href=3D"https://lists.sourceforge.net/lists/listinfo/luabin=
d-user" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/luab=
ind-user</a><br>
><br>
><br>
><br>
><br>
> ----------------------------------------------------------------------=
--------<br>
> This SF.net email is sponsored by Windows:<br>
><br>
> Build for Windows Store.<br>
><br>
> <a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=3D"_blank">http=
://p.sf.net/sfu/windows-dev2dev</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> luabind-user mailing list<br>
> <a href=3D"mailto:[email protected]">luabind-user@lis=
ts.sourceforge.net</a><br>
> <a href=3D"https://lists.sourceforge.net/lists/listinfo/luabind-user" =
target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/luabind-user=
</a><br>
><br>
<br>
---------------------------------------------------------------------------=
---<br>
This SF.net email is sponsored by Windows:<br>
<br>
Build for Windows Store.<br>
<br>
<a href=3D"http://p.sf.net/sfu/windows-dev2dev" target=3D"_blank">http://p.=
sf.net/sfu/windows-dev2dev</a><br>
_______________________________________________<br>
luabind-user mailing list<br>
<a href=3D"mailto:[email protected]">[email protected]=
urceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/luabind-user" targe=
t=3D"_blank">https://lists.sourceforge.net/lists/listinfo/luabind-user</a><=
br>
</div></div></blockquote></div><br></div>
--047d7bd763fcbff45304df7196ea--
--===============9150825358520609573==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
--===============9150825358520609573==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
luabind-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/luabind-user
--===============9150825358520609573==--