[Derelict-Lua] compiler error when lua_register is called

Mike Parker via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Aug 2 09:44:39 PDT 2016


On Tuesday, 2 August 2016 at 14:23:55 UTC, Jack wrote:
> So basically I get the error "function button(lua_State* L) is 
> not callable using argument types ()" whenever I try to 
> lua_register a function.
> ```
> lua_register(L,"button",button);
> ```
> but whenever I use the function pointer I get the error 
> "lua_register is not callable using argument types (lua_State*, 
> char*,extern (C) int function(lua_State* L)"
> ```
> lua_register(L,"button",&button);
> ```
>
> Is this a bug, or am I doing something wrong here?

lua_register takes function pointers that in the form of 
lua_CFunction, an alias you can find declared in 
derelict.lua.types [1]. As you'll see there, it is declared to be 
both extern(C) and nothrow. Make your button function nothrow an 
you should be good to go.

[1] 
https://github.com/DerelictOrg/DerelictLua/blob/master/source/derelict/lua/types.d#L103


More information about the Digitalmars-d-learn mailing list