diff options
| -rw-r--r-- | luatest/luatest.vcxproj | 13 | ||||
| -rw-r--r-- | luatest/luatest.vcxproj.filters | 28 | ||||
| -rw-r--r-- | src/01-coroutine/main.cpp | 21 | ||||
| -rw-r--r-- | src/02-enum/enum.lua | 26 | ||||
| -rw-r--r-- | src/02-enum/main.cpp | 42 | ||||
| -rw-r--r-- | src/03-coroutine_pool/main.cpp | 0 | ||||
| -rw-r--r-- | src/03-coroutine_pool/test.lua | 0 | ||||
| -rw-r--r-- | src/04-thread/main.cpp | 0 | ||||
| -rw-r--r-- | src/04-thread/test.lua | 0 | ||||
| -rw-r--r-- | src/configure.h | 38 |
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 |
