<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[QUIK -> DDE &mdash; SetUpdateCallback возвращает Lua-стек в котором нет таблицы]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=409</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=409&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «SetUpdateCallback возвращает Lua-стек в котором нет таблицы».]]></description>
		<lastBuildDate>Tue, 11 Oct 2022 07:33:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: SetUpdateCallback возвращает Lua-стек в котором нет таблицы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3810#p3810</link>
			<description><![CDATA[<p>И опять Вы правы!<br />Спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Tue, 11 Oct 2022 07:33:24 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3810#p3810</guid>
		</item>
		<item>
			<title><![CDATA[Re: SetUpdateCallback возвращает Lua-стек в котором нет таблицы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3809#p3809</link>
			<description><![CDATA[<p>Вы с Lua кодом сравните, который выполняет аналогичные действия.</p><p>Справка про SetUpdateCallback:</p><div class="quotebox"><blockquote><p>В качестве параметра принимает функцию обратного вызова. Формат функции обратного вызова:<br />function call_back(NUMBER index)<br />index – <strong>номер изменившейся свечки</strong>.</p></blockquote></div><p>В callback передается номер свечки (по идее число, не строка).<br />А таблица с параметрами получается вызовом ds:T(index)</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Tue, 11 Oct 2022 05:12:53 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3809#p3809</guid>
		</item>
		<item>
			<title><![CDATA[SetUpdateCallback возвращает Lua-стек в котором нет таблицы]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3808#p3808</link>
			<description><![CDATA[<p>Какая то странность.</p><p>Вызываю CreateDataSource их С++ с заведомо такими параметрами акций по которым в квике нет загруженных данных.</p><p>То есть CreateDataSource&nbsp; - возвращает пустую таблицу и я вызываю SetUpdateCallback:</p><br /><div class="codebox"><pre><code>        lua_getfield(L, index, &quot;SetUpdateCallback&quot;);                    //&quot;Извлекаем&quot; из &quot;таблицы&quot; функцию SetUpdateCallback.

    lua_pushvalue(L, index);                                        //Помещаем копию обьекта таблицы на вершину стека.

    lua_pushcfunction(L, my_callback_);                       //Помещаем имя Сишой callback функции таблицы на вершину стека.

    int status_lua_pcall = lua_pcall(L, 2, 0, 0);              //Реализую вызов метода SetUpdateCallback</code></pre></div><br /><br /><div class="codebox"><pre><code>static int my_callback_(lua_State* L)
{
    std::cout &lt;&lt; &quot;my_callback_:&quot; &lt;&lt; lua_gettop(L) &lt;&lt; std::endl;

    status = lua_isstring(L, 1);
    if (status == 1)
    {
          std::cout&lt;&lt; &quot;lua_isstring:&quot;&lt;&lt; lua_tostring(L,1) &lt;&lt; std::endl ;
    }
    return 0;
}</code></pre></div><br /><p>И с одной стороны все нормально, my_callback_ - вызывается, НО с другой стороны - я ожидаю там увидеть таблицу запалённую данными свечей, а приходит строка:</p><div class="codebox"><pre><code>1
2
3
4
5
6
...
итд</code></pre></div><p>Такое ощущение, как будто бы похоже на размер таблицы, но в какой то момент это число доходит до 3007 и после этого так и приходит 3007 с последующими вызовами my_callback_ .</p><p>Непосредственно в скрипте Lua в квике такой странности не наблюдается, все работает нормально.<br />Что это может быть ?</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Mon, 10 Oct 2022 18:39:03 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3808#p3808</guid>
		</item>
	</channel>
</rss>
