<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Принимаю из стека пустое значение]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Принимаю из стека пустое значение форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 04 Apr 2026 00:19:06 +0300</pubDate>
		<item>
			<title>Принимаю из стека пустое значение</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28904/topic3361/">Принимаю из стека пустое значение</a></b> <i>Программирование на Lua C++ </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_tVDs8ILQ" href="/user/10643/" bx-tooltip-user-id="10643">Илья</a>, <br />Если проблема в С++ то увы помочь ничем не можем т.к. вопрос вне нашей сферы ответственности.<br />Только вопросы касающиеся непосредственно QUIK.<br /><br />По коду QLUA как минимум видно что Вы опять совершаете ту же самую ошибку что мы уже с Вами <noindex><a href="http://forum.quik.ru/messages/forum10/message28887/topic3358/#message28887" target="_blank" rel="nofollow">обсуждали</a></noindex><br />Еще раз повторяем OnQuote() &nbsp;срабатывает сам по себе при изменении любых стаканов.<br />У Вас же при любом изменении стаканов по любым инструментам, вызывается getQuoteLevel2 по сбербанку.<br />Например, изменился стакан по лукойлу, а Вы дергаете данные по сбербанку.<br />Это уже само по себе не логично и не правильно.<br />Решение уже было озвучено и еще раз повторим, надо добавить проверку инструмента в событии.<br /><br />Либо если с пониманием колбеков проблемы, вообще избавиться от OnQuote. Раз Вам так надо дергать стакан в цикле, так и делайте, никто не запрещает. <br />
			<i>01.02.2018 05:11:19, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28904/topic3361/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28904/topic3361/</guid>
			<pubDate>Thu, 01 Feb 2018 05:11:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Принимаю из стека пустое значение</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28903/topic3361/">Принимаю из стека пустое значение</a></b> <i>Программирование на Lua C++ </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			При попытке записать данные в файл (текстовый документ) из С++ все работает как надо. <br />
			<i>01.02.2018 00:36:47, Илья.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28903/topic3361/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28903/topic3361/</guid>
			<pubDate>Thu, 01 Feb 2018 00:36:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Принимаю из стека пустое значение</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28899/topic3361/">Принимаю из стека пустое значение</a></b> <i>Программирование на Lua C++ </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый вечер. Не могу решить вроде бы совсем не сложную задачу - получить одну переменную из Lua в C#. Не таблицу а просто 1 число из стакана. Есть такой скрипт на Lua<br />====quote====<br />require(&quot;QluaCSharpConnector&quot;);<br />is_run=true;<br /><br />function main()<br />while is_run == true do<br />QluaCSharpConnector.StartSendData(OnQuote());<br />--message(offr_price); &nbsp;<br /><br />sleep(1000);<br />end<br />end;<br /><br />function OnQuote()<br /> &nbsp;tb = getQuoteLevel2(&quot;TQBR&quot;, &quot;SBER&quot;);<br /> &nbsp;offr_price = tostring(tb.offer&#91;1&#93;.price);<br />return offr_price; <br />end<br />=============<br /><br />Есть DLL на плюсах которая берет последнее значение из стека Lua <br /><br />====quote====<br />PBYTE pb = (PBYTE)(MapViewOfFile(hFileMapMyMemory, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 256));<br /><br />while (true)<br />			{<br />if (pb&#91;0&#93; == 0)<br />				{<br />					int index = lua_gettop(L);<br />					double data = lua_tonumber(L, index);<br />					const char *Str;<br />					char buff&#91;100&#93;;<br />					sprintf(buff, &quot;%f&quot;, data);<br />memcpy(pb, buff, strlen(buff));<br />				}<br />				Sleep(1000);<br />			}<br />=============<br />Далее, уже из MMF шарп получает <B>правильное </B>значение цены офера но только один раз. После чего продолжает его печатать когда оно давно изменилось.<br /> <br />====quote====<br />SR_Memory.BaseStream.Seek(0, SeekOrigin.Begin);<br />Msg = SR_Memory.ReadToEnd().Trim('\0', '\r', '\n');<br />=============<br /><br />Скорее всего ошибка кроется в С++ библиотеке, но я в упор не могу её разглядеть. Такое ощущение что я беру элемент в стеке под одним и тем же индексом, но lua_gettop(L) по идеи должен вернуть индекс последнего. <br />
			<i>31.01.2018 17:22:13, Илья.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28899/topic3361/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28899/topic3361/</guid>
			<pubDate>Wed, 31 Jan 2018 17:22:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
