summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/01-coroutine/main.cpp21
-rw-r--r--src/02-enum/enum.lua26
-rw-r--r--src/02-enum/main.cpp42
-rw-r--r--src/03-coroutine_pool/main.cpp0
-rw-r--r--src/03-coroutine_pool/test.lua0
-rw-r--r--src/04-thread/main.cpp0
-rw-r--r--src/04-thread/test.lua0
-rw-r--r--src/configure.h38
8 files changed, 113 insertions, 14 deletions
diff --git a/src/01-coroutine/main.cpp b/src/01-coroutine/main.cpp
index 7e711be..8187f6b 100644
--- a/src/01-coroutine/main.cpp
+++ b/src/01-coroutine/main.cpp
@@ -1,8 +1,5 @@
-extern "C" {
-#include "../lua51/lua.h"
-#include "../lua51/lualib.h"
-#include "../lua51/lauxlib.h"
-}
+#include "../configure.h"
+#if BUILD_TEST == TEST_1
#include <windows.h>
#include <time.h>
@@ -48,14 +45,8 @@ luaL_reg fns[] = {
void openlibs(lua_State* L)
{
luaL_openlibs(L);
- //luaL_register(L, NULL, fns);
- luaL_reg* fn;
- int i = 0;
- for (fn = &fns[0]; fn->name != 0; fn = &fns[++i])
- {
- lua_pushcfunction(L, fn->func);
- lua_setglobal(L, fn->name);
- }
+ ///luaL_register(L, NULL, fns);
+ luax_registerglobal(L, fns);
}
int main(int args, char* argv[])
@@ -67,4 +58,6 @@ int main(int args, char* argv[])
lua_close(L);
return 0;
-} \ No newline at end of file
+}
+
+#endif \ No newline at end of file
diff --git a/src/02-enum/enum.lua b/src/02-enum/enum.lua
new file mode 100644
index 0000000..9c64c1f
--- /dev/null
+++ b/src/02-enum/enum.lua
@@ -0,0 +1,26 @@
+local function makeEnum(enumtable)
+ if enumtable == nil or type(enumtable) ~= "table" then
+ return nil
+ end
+ enumtable.__index = enumtable
+ enumtable.__newindex = function()
+ print("can not modify enum")
+ end
+ local e = {}
+ setmetatable(e, enumtable)
+ return e
+end
+
+local function main()
+ local mode = makeEnum({
+ SinglePlayer = 1,
+ TwoPlayers= 2,
+ ThreePlayers= 3,
+ FourPlayers= 4,
+ PVCom= 5,
+ })
+ mode.SinglePlayer = 2
+ print(mode.SinglePlayer)
+end
+
+main() \ No newline at end of file
diff --git a/src/02-enum/main.cpp b/src/02-enum/main.cpp
new file mode 100644
index 0000000..172364b
--- /dev/null
+++ b/src/02-enum/main.cpp
@@ -0,0 +1,42 @@
+#include "../configure.h"
+#if BUILD_TEST == TEST_2
+
+extern "C" {
+#include "../lua51/lua.h"
+#include "../lua51/lualib.h"
+#include "../lua51/lauxlib.h"
+}
+
+#include <windows.h>
+#include <time.h>
+#include <conio.h>
+
+luaL_reg fns[] = {
+ {0, 0}
+};
+
+void openlibs(lua_State* L)
+{
+ luaL_openlibs(L);
+ //luaL_register(L, NULL, fns);
+ luaL_reg* fn;
+ int i = 0;
+ for (fn = &fns[0]; fn->name != 0; fn = &fns[++i])
+ {
+ lua_pushcfunction(L, fn->func);
+ lua_setglobal(L, fn->name);
+ }
+}
+
+int main(int args, char* argv[])
+{
+ lua_State* L = luaL_newstate();
+ openlibs(L);
+
+ luaL_dofile(L, "02-enum/enum.lua");
+
+ lua_close(L);
+ return 0;
+}
+
+#endif \ No newline at end of file
diff --git a/src/03-coroutine_pool/main.cpp b/src/03-coroutine_pool/main.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/03-coroutine_pool/main.cpp
diff --git a/src/03-coroutine_pool/test.lua b/src/03-coroutine_pool/test.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/03-coroutine_pool/test.lua
diff --git a/src/04-thread/main.cpp b/src/04-thread/main.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/04-thread/main.cpp
diff --git a/src/04-thread/test.lua b/src/04-thread/test.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/04-thread/test.lua
diff --git a/src/configure.h b/src/configure.h
new file mode 100644
index 0000000..bc107e1
--- /dev/null
+++ b/src/configure.h
@@ -0,0 +1,38 @@
+#ifndef _CONFIGURE_H_
+#define _CONFIGURE_H_
+
+#define TEST_1 1
+#define TEST_2 2
+#define TEST_3 3
+#define TEST_4 4
+#define TEST_5 5
+#define TEST_6 6
+#define TEST_7 7
+#define TEST_8 8
+#define TEST_9 9
+#define TEST_10 10
+
+
+#define BUILD_TEST TEST_1
+
+//-----------------------------------------------------------------------------------------------------
+
+extern "C" {
+#include "lua51/lua.h"
+#include "lua51/lualib.h"
+#include "lua51/lauxlib.h"
+}
+
+inline void luax_registerglobal(lua_State* L, luaL_reg *fns)
+{
+ luaL_reg* fn;
+ int i = 0;
+ for (fn = &fns[0]; fn->name != 0; fn = &fns[++i])
+ {
+ lua_pushcfunction(L, fn->func);
+ lua_setglobal(L, fn->name);
+ }
+}
+
+
+#endif \ No newline at end of file