pointhi
Erfahrenes Mitglied
Ich hab eine Funktion definiert die einen std::vector zurückgibt:
und hab diese in Lua mithilfe von luabind registiert:
Dann rufe ich diese Funktion in Lua auf:
[LUA]vector = readFromSlave(500);
for value in vector do
print(value)
end[/LUA]
und bekomme z.B. das als ergebnis:
(ich hab das ganze gekürzt, der komplette Quellcode ist hier (mit viel für dieses Problem unnötiges zeug).
Die Frage ist: Warum wird die korrekte anzahl an elementen erkannt, diese aber nicht korrekt ausgegeben (bei unsigned char als rückgabetyp ist es noch schlimmer)
mfg, pointhi
C++:
std::vector<int> readFromSlave(unsigned int _bits) {
std::vector<int> helpvector;
helpvector.push_back((unsigned char) 10);
helpvector.push_back((unsigned char) 20);
helpvector.push_back((unsigned char) 30);
helpvector.push_back((unsigned char) 40);
return helpvector;
}
und hab diese in Lua mithilfe von luabind registiert:
C++:
x.def("readFromSlave", &readFromSlave, luabind::return_stl_iterator);
Dann rufe ich diese Funktion in Lua auf:
[LUA]vector = readFromSlave(500);
for value in vector do
print(value)
end[/LUA]
und bekomme z.B. das als ergebnis:
Code:
27421936
0
30
40
(ich hab das ganze gekürzt, der komplette Quellcode ist hier (mit viel für dieses Problem unnötiges zeug).
Die Frage ist: Warum wird die korrekte anzahl an elementen erkannt, diese aber nicht korrekt ausgegeben (bei unsigned char als rückgabetyp ist es noch schlimmer)
mfg, pointhi
Zuletzt bearbeitet von einem Moderator: