bool InitXLUE() { //初始化图形库 XLGraphicParam param; XL_PrepareGraphicParam(¶m); long result = XL_InitGraphicLib(¶m); //初始化XLUE,这函数是一个复合初始化函数 //完成了初始化Lua环境,标准对象,XLUELoader的工作 param.textType = XLTEXT_TYPE_FREETYPE; result = XL_SetFreeTypeEnabled(TRUE); result = XLUE_InitLoader(NULL); //设置一个简单的脚本出错提示 XLLRT_ErrorHandle(LuaErrorHandle); return true; }
bool InitXLUE() { XLFS_Init(); XLGraphicParam param; XL_PrepareGraphicParam(¶m); param.textType = XLTEXT_TYPE_FREETYPE; XL_InitGraphicLib(¶m); XL_SetFreeTypeEnabled(TRUE); XLUE_InitLoader(NULL); // 设置脚本错误回调 XLLRT_ErrorHandle(&LuaErrorHandle); return true; }
extern "C" __declspec(dllexport) void RunLua(wchar_t* szLuaPath) { XLLRT_ErrorHandle(LuaErrorHandle); XL_LRT_ENV_HANDLE hEnv = XLLRT_GetEnv(NULL); if (hEnv == NULL)//初始化LUA环境 { hEnv = XLLRT_CreateEnv(NULL); XL_LRT_RUNTIME_HANDLE hRuntime = XLLRT_CreateRunTime(hEnv, NULL, 0); TSDEBUG4CXX(L"XLLRT_GetEnv error! XLLRT_CreateEnv hEnv = " << hEnv << L", XLLRT_CreateRunTime hRuntime = " << hRuntime); } if (NULL == hEnv) { TSDEBUG4CXX(L"XLLRT_GetEnv error! hEnv == NULL"); return ; } // 初始化接口 LuaGSUtil::RegisterObj(hEnv); LuaAsynUtil::RegisterSelf(hEnv); XLLRT_ReleaseEnv(hEnv); hEnv = XLLRT_GetEnv(NULL); XL_LRT_RUNTIME_HANDLE hRuntime = XLLRT_GetRuntime(hEnv, NULL); XL_LRT_CHUNK_HANDLE hChunk = NULL; XLLRT_CreateChunkFromFile(::PathFindFileName(szLuaPath), szLuaPath, &hChunk); if (hChunk != NULL) { XLLRT_RunChunk(hRuntime, hChunk); } if (hChunk != NULL) { XLLRT_ReleaseChunk(hChunk); XLLRT_ReleaseRunTime(hRuntime); XLLRT_ReleaseEnv(hEnv); } return; }