summaryrefslogtreecommitdiff
path: root/src/02-enum
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-09-17 08:30:49 +0800
committerchai <chaifix@163.com>2019-09-17 08:30:49 +0800
commit695f88366e507032a3a9e1eb747cc48610a4cbe1 (patch)
treeb609599d88b0c2133c914c41bbc11e3af026e7c9 /src/02-enum
parentea55f90b49fbfb740a9aec66b4c40060542dc444 (diff)
+协程池、枚举、线程测试
Diffstat (limited to 'src/02-enum')
-rw-r--r--src/02-enum/enum.lua26
-rw-r--r--src/02-enum/main.cpp42
2 files changed, 68 insertions, 0 deletions
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