[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: C++ integration / DSEL alternative questions
- From: Moose <moose@...>
- Date: Tue, 01 Apr 2014 14:14:45 +0200
Am 01.04.2014 12:01 schrieb steve donovan:
> It's the first thing any Lua person would do - if they want some
> initialization to happen once, then let require() do that job.
>
> And I don't understand - the loading _will_ happen exactly once.
Yes, I was afraid that I didn't quite get my wording right.
The loading does happen once. Problem is the one who loads. Maybe I can paint it....
UnitTestProgram MyApplication
| |
| |
+----------------´
v
links
|
v
MyDLL ---- contains ----+--- code_invoking_lua()
| |
| +--- code_to_be_invoked_by_lua()
|
v
executes code_invoking_lua()
|
|
v
LuaScript
|
|
"
local ffi = require("ffi")
ffi.cdef[[
__declspec(dllexport) void code_to_be_invoked_by_lua();
]]
-- does not work
ffi.C.code_to_be_invoked_by_lua()
-- works
mydll = ffi.load('MyDLL') <----- but MyDLL is present twice
mydll.code_to_be_invoked_by_lua()
"
So even if the scripts cache all that, the DLL is still duplicate. But maybe I just have to understand Lua better.
Cheers,
Moose