<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: lua_rawgeti прерывает цикл]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме lua_rawgeti прерывает цикл форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 07:53:31 +0300</pubDate>
		<item>
			<title>lua_rawgeti прерывает цикл</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33157/topic3950/">lua_rawgeti прерывает цикл</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Разобрался<br />В конце не хватало два раза remove<br />		
====code====
<pre>lua_remove(L, -1);
lua_remove(L, -1);</pre>
============= <br />
			<i>06.09.2018 22:57:44, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33157/topic3950/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33157/topic3950/</guid>
			<pubDate>Thu, 06 Sep 2018 22:57:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>lua_rawgeti прерывает цикл</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33156/topic3950/">lua_rawgeti прерывает цикл</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Тестирую dll, привязанную к Луа.<br />Происходит загадочная вещь, прошу помочь.<br />Привожу код внутри dll<br />Этот цикл работает правильно.<br />
====code====
<pre>for (int i = 1; i&#60;=4; i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
printf("%i", i);
printf("&#92;n");&nbsp;&nbsp;&nbsp;
//lua_rawgeti(L, -2, i); закомментировано&nbsp;&nbsp;&nbsp;
//lua_getfield(L, -1, "quantity"); закомментировано
//auto q = lua_tonumber(L, -1); закомментировано
}</pre>
=============
Пишет в консоль <br />1<br />2<br />3<br />4<br />
====code====
<pre>А этот цикл обрывается на второй итерации:
for (int i = 1; i&#60;=4; i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
printf("%i", i);
printf("&#92;n");&nbsp;&nbsp;&nbsp;
lua_rawgeti(L, -2, i); 
lua_getfield(L, -1, "quantity"); 
auto q = lua_tonumber(L, -1); 
}</pre>
=============
Пишет <br />1<br />2<br /><br />Путём опытов я понял, что проблема в функции lua_rawgeti(L, -2, i); &nbsp;Она обрывает цикл на второй итерации.<br />Почему?<br />П.С. Если это важно, то всё это происходит внутри обработки колбека OnQuote <br />
			<i>06.09.2018 22:04:15, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33156/topic3950/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33156/topic3950/</guid>
			<pubDate>Thu, 06 Sep 2018 22:04:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
