From 0382bd8a03b82b9c154d896e819ee7fed24025eb Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 23 Sep 2019 08:00:18 +0800 Subject: =?UTF-8?q?*=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/04-thread/main.cpp | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/04-thread/test.lua | 11 +++++++ 2 files changed, 89 insertions(+) (limited to 'src/04-thread') diff --git a/src/04-thread/main.cpp b/src/04-thread/main.cpp index e69de29..56b5066 100644 --- a/src/04-thread/main.cpp +++ b/src/04-thread/main.cpp @@ -0,0 +1,78 @@ +#include "../configure.h" +#if BUILD_TEST == TEST_4 + +#include +#include +#include + +static int l_GetTime(lua_State* L) +{ + float second = (double)clock() / CLOCKS_PER_SEC; + lua_pushnumber(L, second); + return 1; +} + +static int l_Sleep(lua_State* L) +{ + float t = lua_tonumber(L, 1); + Sleep(t * 1000); + return 0; +} + +static int l_Kbhit(lua_State* L) +{ + int c = _kbhit(); + lua_pushboolean(L, c); + return 1; +} + +static int l_GetChar(lua_State* L) +{ + char str[2] = { 0,0 }; + str[0] = _getch(); + lua_pushstring(L, str); + return 1; +} + +luaL_reg fns[] = { + {"GetTime", l_GetTime } , + {"Sleep", l_Sleep } , + {"Kbhit", l_Kbhit }, + {"GetChar", l_GetChar }, + {0, 0} +}; + +void openlibs(lua_State* L) +{ + luaL_openlibs(L); + ///luaL_register(L, NULL, fns); + luax_registerglobal(L, fns); +} + +int f(int& a) +{ + a = 20; + return a; +} + +int foo(int a, int b) +{ + return a + b; +} + +int main(int args, char* argv[]) +{ + int a = 10; + int r = foo(a, f(a)); + printf("%d\n", r); + + lua_State* L = luaL_newstate(); + openlibs(L); + + luaL_dofile(L, "04-thread/test.lua"); + + lua_close(L); + return 0; +} + +#endif \ No newline at end of file diff --git a/src/04-thread/test.lua b/src/04-thread/test.lua index e69de29..ec22646 100644 --- a/src/04-thread/test.lua +++ b/src/04-thread/test.lua @@ -0,0 +1,11 @@ + +local function main() + local a = 1 + print(debug.getlocal(1, 1)) +end + + +local suc, rval = xpcall(main, debug.traceback) +if not suc then + print(rval) +end -- cgit v1.1-26-g67d0