Как можно реализовать вывод ошибки lua например: "Syntax error in script.lua 4 line". Использую LuaBridge и lua5.3. Вот мой класс который запускает луа скрипт:
//.h
#pragma once
#pragma comment(lib, "lua53.lib")
extern "C" {
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
#include <iostream>
#include <LuaBridge/LuaBridge.h>
using namespace std;
using namespace luabridge;
class Lua_sup
{
private:
string m_name;
lua_State* L ;
bool init_state = false;
public:
Lua_sup(string name);
Lua_sup() {};
~Lua_sup();
void init();
void test();
bool get_state() { return init_state; }
};
//.cpp
#include "Lua_sup.h"
void printMessage(const std::string& s) {
cout << "print = " << s << endl;
}
string get_string() {
return "Hi ";
}
Lua_sup::Lua_sup(string name)
{
m_name = name;
L = luaL_newstate();
luaL_openlibs(L);
}
Lua_sup::~Lua_sup()
{
lua_close(L);
}
void Lua_sup::init()
{
//L = luaL_newstate();
getGlobalNamespace(L).addFunction("printMessage", printMessage);
int temp = luaL_loadfile(L, m_name.c_str()) || lua_pcall(L, 0, 0, 0);
if (temp) {
cout << "Error";
init_state = false;
}
getGlobalNamespace(L).addFunction("get_string", get_string);
getGlobalNamespace(L).addFunction("printMessage", printMessage);
//int temp = lua_pcall(L, 0, 0, 0);
init_state = true;
}
void Lua_sup::test()
{
LuaRef hello_world_sum = getGlobal(L, "hello_world_sum");
LuaRef plot = getGlobal(L, "plot");
for (int i = 0; i < 3; i++)
{
int result = hello_world_sum(1, 2);
cout << "Result = " << result << endl;
}
int result = hello_world_sum(1, 2);
cout << "Result = " << result << endl;
getchar();
}
//main
#include "Lua_sup.h"
using namespace luabridge;
int main() {
Lua_sup lua("script.lua");
lua.init();
lua.test();
lua.test();
Lua_sup lua1("123.lua");
lua1.init();
lua1.test();
lua.test();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Что то я окончательно запутался, без помощи не могу разобраться: Пытаюсь прочитать ответ от сервера на get запрос, код простой:
На своем Wordpress-сайте я показываю 2 диаграммы при помощи Google Charts и, к сожалению, на экране мобильных устройств они шире, чем ширина экрана: