summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--luatest/luatest.vcxproj13
-rw-r--r--luatest/luatest.vcxproj.filters28
-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
10 files changed, 154 insertions, 14 deletions
diff --git a/luatest/luatest.vcxproj b/luatest/luatest.vcxproj
index 7678b93..694afe1 100644
--- a/luatest/luatest.vcxproj
+++ b/luatest/luatest.vcxproj
@@ -77,7 +77,11 @@
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ObjectFileName>$(IntDir)%(RelativeDir)</ObjectFileName>
</ClCompile>
+ <Link>
+ <SubSystem>NotSet</SubSystem>
+ </Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
@@ -97,10 +101,12 @@
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ObjectFileName>$(IntDir)%(RelativeDir)</ObjectFileName>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
+ <SubSystem>NotSet</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -120,6 +126,9 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\01-coroutine\main.cpp" />
+ <ClCompile Include="..\src\02-enum\main.cpp" />
+ <ClCompile Include="..\src\03-coroutine_pool\main.cpp" />
+ <ClCompile Include="..\src\04-thread\main.cpp" />
<ClCompile Include="..\src\lua51\lapi.c" />
<ClCompile Include="..\src\lua51\lauxlib.c" />
<ClCompile Include="..\src\lua51\lbaselib.c" />
@@ -152,6 +161,7 @@
<ClCompile Include="..\src\lua51\print.c" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="..\src\configure.h" />
<ClInclude Include="..\src\lua51\lapi.h" />
<ClInclude Include="..\src\lua51\lauxlib.h" />
<ClInclude Include="..\src\lua51\lcode.h" />
@@ -178,6 +188,9 @@
</ItemGroup>
<ItemGroup>
<None Include="..\src\01-coroutine\test.lua" />
+ <None Include="..\src\02-enum\enum.lua" />
+ <None Include="..\src\03-coroutine_pool\test.lua" />
+ <None Include="..\src\04-thread\test.lua" />
<None Include="..\src\lua51\Makefile" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/luatest/luatest.vcxproj.filters b/luatest/luatest.vcxproj.filters
index 53edc74..bd387f9 100644
--- a/luatest/luatest.vcxproj.filters
+++ b/luatest/luatest.vcxproj.filters
@@ -7,6 +7,15 @@
<Filter Include="01-coroutine">
<UniqueIdentifier>{91f5f8d8-9d1d-4d34-aa14-7ea56374985e}</UniqueIdentifier>
</Filter>
+ <Filter Include="02-enum">
+ <UniqueIdentifier>{1c219b3b-3934-49fb-9d4c-ef379725ae2d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="03-coroutine_pool">
+ <UniqueIdentifier>{9c19d3f8-903e-47b9-9ebe-8a7c920483f6}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="04-thread">
+ <UniqueIdentifier>{341108f2-69e2-48b8-9c18-48749093b918}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\lua51\lapi.c">
@@ -102,6 +111,15 @@
<ClCompile Include="..\src\01-coroutine\main.cpp">
<Filter>01-coroutine</Filter>
</ClCompile>
+ <ClCompile Include="..\src\02-enum\main.cpp">
+ <Filter>02-enum</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\03-coroutine_pool\main.cpp">
+ <Filter>03-coroutine_pool</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\04-thread\main.cpp">
+ <Filter>04-thread</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\lua51\lapi.h">
@@ -173,6 +191,7 @@
<ClInclude Include="..\src\lua51\lzio.h">
<Filter>lua51</Filter>
</ClInclude>
+ <ClInclude Include="..\src\configure.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\src\lua51\Makefile">
@@ -181,5 +200,14 @@
<None Include="..\src\01-coroutine\test.lua">
<Filter>01-coroutine</Filter>
</None>
+ <None Include="..\src\02-enum\enum.lua">
+ <Filter>02-enum</Filter>
+ </None>
+ <None Include="..\src\03-coroutine_pool\test.lua">
+ <Filter>03-coroutine_pool</Filter>
+ </None>
+ <None Include="..\src\04-thread\test.lua">
+ <Filter>04-thread</Filter>
+ </None>
</ItemGroup>
</Project> \ No newline at end of file
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