学着快手开发环境中关于C语言与AAuto函数调用的例子,把两者合二为一做了一个小例子,练练手,学习之用。
//C语言和AAuto互相调用函数
code_c = /****
#include
//该函数在C语言中声明,在AAuto中定义
const void aau();
void C()
{
io_reopen();
//调用AAuto函数
aau();
printf("C say: hello AAuto\n");
}
****/
io.open();//打开控制台,默认编译错误等信息在控制台输出
import tcc;
//创建TCC编译器
vm = tcc();
//编译C源码
vm.compile(code_c);
//定义一个AAuto函数
aauto_func = function(){
io.print( "AAuto say: hello C" )
}
//导入为C语言函数定义
vm.setCdecl(
aauto_func, //AAuto函数名字
"aau", //在C语言中调用的函数名字
"void()" //函数原型,与C语言中的声明必须一致.
)
//获取C函数
func_c = vm.getCdecl("C","void()")
//调用C函数
var ret = func_c()
//关闭C语言编译器
vm.close();
execute("pause")
io.close()