0
我試圖訪問結構成員沒有屬性訪問結構成員tolua ++與第一像這樣性質
class MyClass {
MyClass() { }
~MyClass() { }
my_struct_t my_struct;
};
typedef struct
{
tolua_property char var1[15];
tolua_property char var2[33];
} my_struct;
但沒有工作,問題是在轉換字符串到lua字符串中,我無法設置var1,因爲我期望,因爲它是char arry而不是lua字符串,它會引發錯誤:「value is'string';'tabl e'預計。「 那好吧,我添加屬性,這些變量能夠爲這裏訪問它們:
typedef struct
{
string get_var1()
{
// const char* can be also used instead of std::string to pass this as string into a lua?
string str = var1;
return str;
}
string get_var2() {
string str = var2;
return str;
}
void set_var1(string p_name) {
strncpy(var1, p_name.c_str(), sizeof(var1));
var1[sizeof(var1) - 1] = 0;
}
void set_var2(string p_name) {
strncpy(var2, p_name.c_str(), sizeof(var2));
var2[sizeof(var2) - 1] = 0;
}
char var1[15];
char var2[33];
} my_struct_t;
問題:正如你可以看到我添加的屬性,以能夠訪問這些變量和解決焦炭ARRY轉換,但即使它仍然拋出我「的價值是'串','表'預期。」我不明白爲什麼?它可能是錯誤還是我做錯了? Lua代碼:
local packet = MyClass:new()
packet.my_struct.var1 = "hi" -- throws "value is 'string'; 'table' expected." even with property
print(packet.my_struct.var1)