本文整理汇总了C++中CCScriptEngineProtocol::getLuaState方法的典型用法代码示例。如果您正苦于以下问题:C++ CCScriptEngineProtocol::getLuaState方法的具体用法?C++ CCScriptEngineProtocol::getLuaState怎么用?C++ CCScriptEngineProtocol::getLuaState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCScriptEngineProtocol
的用法示例。
在下文中一共展示了CCScriptEngineProtocol::getLuaState方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: free
LUA_STRING CCCrypto::encodingBase64Lua(bool isDecoding,
const char* input,
int inputLength)
{
CCScriptEngineProtocol* engine = CCScriptEngineManager::sharedManager()->getScriptEngine();
engine->cleanLuaStack();
lua_State* L = engine->getLuaState();
int outputLength = inputLength * 2;
char* output = static_cast<char*>(malloc(outputLength));
int dataUsed = -1;
if (isDecoding)
{
dataUsed = decodeBase64(input, output, outputLength);
}
else
{
dataUsed = encodeBase64(input, inputLength, output, outputLength);
}
if (dataUsed > 0 && dataUsed < outputLength)
{
lua_pushlstring(L, output, dataUsed);
}
else
{
lua_pushnil(L);
}
free(output);
return 1;
}
示例2:
LUA_STRING CCCrypto::MD5Lua(char* input, int inputLength, bool isRawOutput)
{
static const char* hextable = "0123456789abcdef";
unsigned char buffer[16];
MD5(static_cast<void*>(input), inputLength, buffer);
CCScriptEngineProtocol* engine = CCScriptEngineManager::sharedManager()->getScriptEngine();
engine->cleanLuaStack();
lua_State* L = engine->getLuaState();
if (isRawOutput)
{
lua_pushlstring(L, (char*)buffer, 16);
}
else
{
char md5str[33];
md5str[32] = 0;
int ci = 0;
for (int i = 0; i < 16; ++i)
{
unsigned char c = buffer[i];
md5str[ci++] = hextable[(c >> 4) & 0x0f];
md5str[ci++] = hextable[c & 0x0f];
}
lua_pushstring(L, md5str);
}
return 1;
}