Lua调用c++函数
2012-07-04 14:10
429 查看
export.h
export.cpp
生成动态链接库(ActsZip.dll)放置于工程目录下,在lua文件中按照如下方式调用
#ifndef _ACTS_ZIP_H_ #define _ACTS_ZIP_H_ extern "C"{ #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #pragma comment(lib,"lua5.1.lib") #ifdef ACTS_ZIP_DLL #define ACTS_ZIP_DLL_API_ __declspec(dllexport) #else #define ACTS_ZIP_DLL_API_ __declspec(dllimport) #endif #ifdef __cplusplus extern "C" { #endif ACTS_ZIP_DLL_API_ int LuaZip(lua_State* L); ACTS_ZIP_DLL_API_ int LuaUnZip(lua_State* L); ACTS_ZIP_DLL_API_ int LuaOpenLuaZipAPI (lua_State* L); #ifdef __cplusplus } #endif #endif
export.cpp
#include <Windows.h> #include "stdafx.h" #include "export.h" #include "zip.h" #include <tchar.h> #include "ActsZipAPI.h" int LuaUnZip(lua_State* L) { const char* zipFileName = lua_tostring(L,1); const char* targetDir = lua_tostring(L,2); bool flag = false; flag = UnActsZip(zipFileName,targetDir); lua_pushboolean(L,flag); return 1; } int LuaZip(lua_State* L) { const char* dir = lua_tostring(L,1); const char* fileName = lua_tostring(L,2); const char* targetName = lua_tostring(L,3); bool flag = false; flag = ActsZip(dir,fileName,targetName); lua_pushboolean(L,flag); return 1; } static const struct luaL_Reg LuaZipAPI[]={ {"LuaZip",LuaZip}, {"LuaUnZip",LuaUnZip}, {NULL,NULL} }; int LuaOpenLuaZipAPI (lua_State* L) { luaL_register(L,"LuaZipAPI",LuaZipAPI); return 1; }
生成动态链接库(ActsZip.dll)放置于工程目录下,在lua文件中按照如下方式调用
local LoadFunc = package.loadlib("../ActsZip.dll","LuaOpenLuaZipAPI") if nil ~= LoadFunc then LoadFunc() end LuaZip = LuaZipAPI LuaZip.LuaZip(Cfgpath,"",filePath) LuaZip.LuaUnZip(filePath,Cfgpath)
相关文章推荐
- 在c++中调用lua的函数
- 最简单的C++中调用LUA函数源代码
- Lua结合C#调用C++或者C的函数
- lua入门之二:c/c++ 调用lua及多个函数返回值的获取
- 简单C++调用lua函数的小例子
- Lua入门之二:C/C++ 调用Lua及多个函数返回值的获取
- C/C++中调用LUA函数
- (如何在C++代码中调用Lua脚本的函数?)
- lua笔记 --- 一个C++调用lua函数的类的实现
- C++保存和调用lua函数
- Lua调用C++的函数
- Lua学习之2 :Lua调用C++函数
- C/C++语言调用lua函数和编译问题
- C++调用lua函数的一种通用办法
- C++调用lua函数的一种通用办法
- tolua 使用 Lua调用c++多返回值函数
- C++调用Lua的函数
- 【走进Lua的世界之五】C++调用Lua函数
- 为Quick-Cocos2dx-2.26添加C++函数供Lua调用
- VC6.0配置LUA编译环境及LUA调用C++函数的简单示例