本以为可以像lua一样把代码丢进去直接编译就好了,结果发现luajit有一堆汇编代码,不知道怎么处理,后来一搜索才知道luajit本身提高的批处理也可以编译成静态库,就是在后面加个static,郁闷到了。http://blog.csdn.net/whitehack/article/details/6451293
Google来Google,终于看到用FFI绑定宿主程序函数的例子,卧槽,知道真相我的眼泪都流下来!原来FFI本质是绑定导出的符号,所以说只要导出符号就可以用,吐血。
#include <lua.hpp>
#include <cassert>
// Please note that despite the fact that we build this code as a regular
// executable (exe), we still use __declspec(dllexport) to export
// symbols. Without doing that FFI wouldn't be able to locate them!
extern "C"
{
__declspec(dllexport) void __cdecl hello_from_lua(const char *msg)
{
printf("A message from LUA: %s\n", msg);
}
__declspec(dllexport) int Add(int a,int b)
{
return a+b;
}
}
const char *lua_code =
"local ffi = require('ffi') \n"
"ffi.cdef[[