Re: To And From C++

Phil Cooper-King <[email protected]> Fri, 4 Nov 2011 17:25:58 +0000
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <CAPrH6UNQKOe9tDqYJDMUeH_KkoAiiN7DvntVjde3OvhXvsKodA@mail.gmail.com>
Thanks guys, yep the = 0 thing did the trick.

although the
luabind::object method = globals(L)["MyClass"]["methodName"];
int result = luabind::call_function<int>(method, instance, additionalParams)

still didn't work, although that isn't very important for me right now.

I didn't realise I could use the
void addObj(Somebase* obj);

That is alot handier.


On 2 November 2011 22:13, Nigel Atkinson <[email protected]> wrote:
> Hi Phil,
> I got your example to work (at lest with GCC on Linux) by changing:
>
> struct SomeBase {
> 	virtual void tickle() = 0 {}
> };
>
> to
>
> struct SomeBase {
> 	virtual void tickle() { std::cout << "SomeBase::tickle()" << std::endl; }
> };
>
> That is, I got rid of the " = 0 " bit on the method.  And it seemed to work,
> also with the bit you commented out back in.  GCC alerted me to the pure but
> not function when I tried compiling.
> Also remember you could do:
> void addLuaObj( SomeBase* obj)
> {
>      obj->ticklel();
> }
> as well.
> Nigel
>
> On 03/11/2011, at 6:31 AM, Phil Cooper-King wrote:
>
> Thanks Tony,
>
> there must be something else going on.
>
> Base* ptr = luabind::object_cast<Base*>(myobject);
>
> causes a crash,
> and also
>
> luabind::object method = globals(L)["MyClass"]["methodName"];
> int result = luabind::call_function<int>(method, instance, additionalParams)
>
> causes a crash.
>
> this is the full source
> cpp http://pastie.org/2800173
> lua http://pastie.org/2800570
>
> On 2 November 2011 16:58, Tony Kostanjsek <[email protected]> wrote:
>
> hi Phil,
>
> pointer from luabind::object:
>
> Base* ptr = luabind::object_cast<Base*>(myobject);
>
> as for the method call: do you derive from a C++ class in Lua and do you
> want to call a method from the C++ interface, or do you want to call a
> method that has been added in Lua, but wasn't part of the original
> interface?
>
> In any case, you can resort to a Lua style construction which should always
> work.
>
> luabind::object method = globals(L)["MyClass"]["methodName"];
>
> int result = luabind::call_function<int>(method, instance, additionalParams)
>
> which would be equivalent to Lua:
>
> result = instance:methodName(additionalParams)
>
> or alternatively
>
> result = MyClass.methodName(instance, additionalParams)
>
> hth,
>
> Tony
>
> On 02.11.2011, at 17:37, Phil Cooper-King wrote:
>
> Hey Guys,
>
> I'm finding it quite easy to go from C++ to Lua in terms exposing
>
> functionality, but the other way around I'm not really understanding
>
> how to do it.
>
> I have C++ function
>
> void addObject(luabind::object)
>
> {
>
>     // Get Base ptr
>
>     // Call lua objects method.
>
> }
>
> How do I get the base pointer of this object (amusing its both wrapped
>
> and inherited), and also how do I call its lua methods.
>
> I thought  the classes would be just tables, but they dont seem to
>
> return LUA_TTABLE.
>
> Thanks
>
> Phil.
>
> ------------------------------------------------------------------------------
>
> RSA&#174; Conference 2012
>
> Save $700 by Nov 18
>
> Register now&#33;
>
> http://p.sf.net/sfu/rsa-sfdev2dev1
>
> _______________________________________________
>
> luabind-user mailing list
>
> [email protected]
>
> https://lists.sourceforge.net/lists/listinfo/luabind-user
>
>
> ------------------------------------------------------------------------------
>
> RSA&#174; Conference 2012
>
> Save $700 by Nov 18
>
> Register now&#33;
>
> http://p.sf.net/sfu/rsa-sfdev2dev1
>
> _______________________________________________
>
> luabind-user mailing list
>
> [email protected]
>
> https://lists.sourceforge.net/lists/listinfo/luabind-user
>
>
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> _______________________________________________
> luabind-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/luabind-user
>
>
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> _______________________________________________
> luabind-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/luabind-user
>
>

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1