[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Trouble with lua_newstate() syntax
- From: Dave Bollinger <DBollinger@...>
- Date: Sun, 18 Jun 2000 14:35:43 -0400
The use of varargs in lua_newstate() is troublesome on the Windows
platform when building a DLL. If you want to build a "correct" DLL you
cannot use the C calling convention, thus can't use varargs, thus you can't
export that function. That makes using Lua a bit difficult! ;->
Easy solution is to just wrap the call inside something that doesn't
require varargs, either by ignoring the optional configuration and passing
no args, or by passing a structure containing the necessary fields and
passing a single pointer. But I wonder if something like this might be
worth including in the real version? Just to give an idea:
struct lua_config
{
int builtin;
int stack;
};
typedef struct lua_config lua_Config;
lua_State *lua_newstate(lua_Config *config);
Of course, allow NULL to be passed to take all defaults. If necessary,
add a bitmapped flag field to indicate which settings are actually
specified. Food for thought. :-)
Cheers,
Dave
(P.S. luaL_verror() obviously has the same problem, but I see no easy
way around that one, and is easier to lose since it's just an aux
function.)