回答編集履歴

1

追記

2020/02/03 06:50

投稿

fana
fana

スコア11996

test CHANGED
@@ -7,3 +7,55 @@
7
7
 
8
8
 
9
9
  これに戻り値が無いからなのでは…?
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ ちょっとテストしてみました.
18
+
19
+ ↓のコードを実行すると,結果として5が表示され,
20
+
21
+ luaL_dostringの第二引数を`"print('hello world!!')"`にすると`there are no string`が表示されますので,
22
+
23
+ やはり,`print`は戻り値が無いのではないかと.
24
+
25
+ ```C++
26
+
27
+ lua_State* L = luaL_newstate();
28
+
29
+ luaL_openlibs(L);
30
+
31
+
32
+
33
+ std::cout << "(Call luaL_dostring)" << std::endl;
34
+
35
+ if (luaL_dostring(L, "return 5") == 0 ) //※戻り値をスタックに積んでみるテスト
36
+
37
+ {
38
+
39
+ std::cout << "(Call lua_tostring)" << std::endl;
40
+
41
+ auto ret = ( lua_tostring(L, -1) );
42
+
43
+ if( ret )
44
+
45
+ { std::cout << "(result is)" << ret << std::endl; }
46
+
47
+ else
48
+
49
+ { std::cout << "there are no string" << std::endl; }
50
+
51
+ }
52
+
53
+ else
54
+
55
+ { std::cout << "luaL_dostring err" << std::endl; }
56
+
57
+
58
+
59
+ lua_close(L);
60
+
61
+ ```