CREO Toolkit二次开发-集成Lua
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能[1]。在群里和网站上看到不止一人需要将lua嵌入Toolkit程序中用于扩展Creo关系中的函数,做了一个测试将lua集成到Toolkit程序中。
1.获取源码
首先在Lua的官网http://www.lua.org/ftp/下载最新版,我这里下载的是最新版lua-5.3.5.tar.gz。
2.配置工程
- 新建一个MFC DLL工程,按照正常的Creo Toolkit程序配置工程。另需在设置中c++————预编译头————预编译头设置为”不使用预编译头”,如图1所示。

图1 工程设置
- 在工程目录下新建文件夹并命名为lua,将第一步下载的文件源码解压到lua目录下,在VS工程上点右键————添加现有项,把第一步下载的源码中所有.c、.h文件包含进来,注意lua.c和luac.c这两个文件可以删除,不用包含。
3. 关键源码
- 添加一个Lua项目。新建add.lua文件,这里简单示例,写一个返回两个变量之和的函数:
1 | function add(x, y) |
- 包含头文件。在vs中的stdafx.h包含头文件,代码如下:
1 | extern "C" |
- 在工程中调用lua函数并返回值。首先是声明一个lua指针:
1 | lua_State *L; |
根据参考文献,打开我们建立的lua文件运行函数并返回值的代码如下:
1 | L = luaL_newstate(); |
调用add.lua中的add函数并返回值的代码如下:
1 | int luaAdd(int x, int y) |
完整代码可在Github.com下载。
参考文献
[1] 菜鸟教程. Lua 教程. 2018-10-22[引用日期2018-10-22],http://www.runoob.com/lua/lua-tutorial.html.