<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Передать в SetUpdateCallback дополнительные параметры]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Передать в SetUpdateCallback дополнительные параметры форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 29 Apr 2026 06:15:16 +0300</pubDate>
		<item>
			<title>Передать в SetUpdateCallback дополнительные параметры</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66151/topic7673/">Передать в SetUpdateCallback дополнительные параметры</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Есть один проект - <noindex><a href="https://github.com/elelel/qluacpp" target="_blank" rel="nofollow">https://github.com/elelel/qluacpp</a></noindex><br />Найдете много ответов. <br />
			<i>11.10.2022 22:35:47, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66151/topic7673/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66151/topic7673/</guid>
			<pubDate>Tue, 11 Oct 2022 22:35:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Передать в SetUpdateCallback дополнительные параметры</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66150/topic7673/">Передать в SetUpdateCallback дополнительные параметры</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_UtsMKMYv" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /><br />-----------------<br />Если Вы не поняли, то что я Вам написал, то нет смысла объяснять Вам как это делать на СИ.<br />Вы это тем более не поймете.<br />=============<br /><br />Так на Lua api C - вы и не знаете, как это сделать. Вы, как раз не понимаете/ <br />
			<i>11.10.2022 21:00:17, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66150/topic7673/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66150/topic7673/</guid>
			<pubDate>Tue, 11 Oct 2022 21:00:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Передать в SetUpdateCallback дополнительные параметры</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66149/topic7673/">Передать в SetUpdateCallback дополнительные параметры</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Fd1GCWjt" href="/user/15613/" bx-tooltip-user-id="15613">Quikos</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br /> &nbsp;Вы можете передать любые параметры в любую функцию через внешние для нее параметры<br />Это могут быть либо глобальные либо локальные параметры блока<br />Например в вашем случае делаем так:<br /> &nbsp;
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp; param1,param2;
&nbsp;&nbsp;-------------------------------------&nbsp;&nbsp;
&nbsp;&nbsp;function&nbsp;&nbsp; my_callback_ (index) 
&nbsp;&nbsp;--Теперь тут доступны внешние локальные параметры...my_table_, param1, param2 - помимо стандартного index&nbsp;&nbsp;
&nbsp;&nbsp;end&nbsp;&nbsp;
&nbsp;&nbsp;----------------&nbsp;&nbsp;
&nbsp;&nbsp;local&nbsp;&nbsp; my_table&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; CreateDataSource&nbsp;&nbsp; (code_class, code_paper_ interval)
parametr_1&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; "1"&nbsp;&nbsp;
parametr_2&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp;&nbsp; "2"&nbsp;&nbsp;
my_table :&nbsp;&nbsp; SetUpdateCallback&nbsp;&nbsp; ( my_callback )
&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
 &nbsp;И не надо огород городить.<br />Вы можете таким же образом передать и таблицу и все что хотите.<br />=============<br /> <br />Не сочтите за наглость, Вы сами по поняли, что написали ?<br /><br />1)Во первых даже если мы рассматриваем Lua - где тут передача параметров в функцию ? Я что спрашивал про глобальные параметры ? Почему вы вообще применяется к глобальным переменным термин &quot;передать&quot; ?? Это и так ГЛОБАЛЬНАЯ переменная.<br />2)Во вторых я четко спросил про Си, то есть, как это реализовать на Lua api в Си.<br /><br />Будем откровенны - Вы написали очень глупую глупость :)<br />=============<br />Я вам пояснил, что указанное вами решение - это нагромождение огорода - именно для луа.<br />---------------------<br />В подсмотренном но не понятом Вами варианте , параметры будут загружаться в стек луа вне функциию<br />------------------------------<br />В моем варианте параметры определены как upvalue и будут загружены в стек &nbsp;луа внутри функции.<br />-----------------<br />Разница лишь в том, что ваш вариант содержит больше букв .<br />-----------------<br />Если Вы не поняли, то что я Вам написал, то нет смысла объяснять Вам как это делать на СИ.<br />Вы это тем более не поймете. <br />
			<i>11.10.2022 19:53:30, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66149/topic7673/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66149/topic7673/</guid>
			<pubDate>Tue, 11 Oct 2022 19:53:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Передать в SetUpdateCallback дополнительные параметры</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66145/topic7673/">Передать в SetUpdateCallback дополнительные параметры</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вы привели пример лямбда функции. <br />SetUpdateCallback в качестве первого аргумента просит ссылку на функцию. Функцию можно объявить в переменную, можно без объявления как лямбду. Кажется в С++ 14 появилось и лямбы и замыкания.<br /><br /><br />Но Вам необходимо &quot;захватить&quot; переменные, чтобы они были видимы в итоговой исполняемой функции. Делать это можно и так как написали, но лучше использовать более явный подход. Вот на чистом lua:<br />
====code====
<pre>local function call_back_processor(var1, var2)
&nbsp;&nbsp;&nbsp;&nbsp;return function(index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(index, var1, var2)
&nbsp;&nbsp;&nbsp;&nbsp;end
end

local my_call_back = call_back_processor('a', 'b')

my_call_back(1)
my_call_back(2)
my_call_back(3)
my_call_back(4)</pre>
=============
<br />Мы создаем замыкание с явной передаче переменных, требующих запоминания меду вызовами.<br /><br />Для вашего случая можно сделать и через неявную функцию (лямбду):<br /><br />my_table:SetUpdateCallback(call_back_processor(&#39;a&#39;, &#39;b&#39;))<br /><br />А можно и через явное объявление функции и передачи ее как параметра в SetUpdateCallback <br />
			<i>11.10.2022 17:02:03, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66145/topic7673/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66145/topic7673/</guid>
			<pubDate>Tue, 11 Oct 2022 17:02:03 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Передать в SetUpdateCallback дополнительные параметры</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66138/topic7673/">Передать в SetUpdateCallback дополнительные параметры</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_o530DCFp" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> &nbsp;Вы можете передать любые параметры в любую функцию через внешние для нее параметры<br />Это могут быть либо глобальные либо локальные параметры блока<br />Например в вашем случае делаем так:<br /> 
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;&nbsp;param1,param2;
 ------------------------------------- 
 function&nbsp;&nbsp;my_callback_ (index) 
 --Теперь тут доступны внешние локальные параметры...my_table_, param1, param2 - помимо стандартного index 
 end 
 ---------------- 
 local&nbsp;&nbsp;my_table&nbsp;&nbsp;=&nbsp;&nbsp; CreateDataSource&nbsp;&nbsp;(code_class, code_paper_ interval)
parametr_1&nbsp;&nbsp;=&nbsp;&nbsp; "1" 
parametr_2&nbsp;&nbsp;=&nbsp;&nbsp; "2" 
my_table :&nbsp;&nbsp;SetUpdateCallback&nbsp;&nbsp;( my_callback )
&nbsp;&nbsp;</pre>
=============
 И не надо огород городить.<br />Вы можете таким же образом передать и таблицу и все что хотите.<br />=============<br /><br />Не сочтите за наглость, Вы сами по поняли, что написали ?<br /><br />1)Во первых даже если мы рассматриваем Lua - где тут передача параметров в функцию ? Я что спрашивал про глобальные параметры ? Почему вы вообще применяется к глобальным переменным термин &quot;передать&quot; ?? Это и так ГЛОБАЛЬНАЯ переменная.<br />2)Во вторых я четко спросил про Си, то есть, как это реализовать на Lua api в Си.<br /><br />Будем откровенны - Вы написали очень глупую глупость :) <br />
			<i>11.10.2022 14:15:02, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66138/topic7673/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66138/topic7673/</guid>
			<pubDate>Tue, 11 Oct 2022 14:15:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Передать в SetUpdateCallback дополнительные параметры</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66135/topic7673/">Передать в SetUpdateCallback дополнительные параметры</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oI5dcCwm" href="/user/15613/" bx-tooltip-user-id="15613">Quikos</a> написал:<br />При вызове SetUpdateCallback по умолчанию передать туда доп. параметры нельзя:<br /><br /><br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; my_callback_ (index)

 --index - индекс свечи в таблице my_table, НО сама таблица по умолчанию не приходит, что просто дикость. 

 end 


 local&nbsp;&nbsp;my_table&nbsp;&nbsp;=&nbsp;&nbsp; CreateDataSource (code_class, code_paper_ interval)

my_table : SetUpdateCallback (my_callback_)&nbsp;&nbsp;</pre>
=============
 <br /><br />Но, передать доп. параметры в callback - можно с помощью такой контракции, в данном случае я не знаю, что она означает на Lua, просто подсмотрел на данном форуме:<br /><br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; my_callback_ (my_table_, param1, param2, index)

 --Теперь тут доступны переданные дополнительные параметры...my_table_, param1, param2 - помимо стандартного index 

 end 


 local&nbsp;&nbsp;my_table&nbsp;&nbsp;=&nbsp;&nbsp; CreateDataSource (code_class, code_paper_ interval)

parametr_1&nbsp;&nbsp;=&nbsp;&nbsp; "1" 
parametr_2&nbsp;&nbsp;=&nbsp;&nbsp; "2" 

my_table : SetUpdateCallback ( function (idx)my_callback_(my_table,parametr_1, parametr_2, idx)&nbsp;&nbsp;end )&nbsp;&nbsp;</pre>
=============
 <br /><br /><br /> И теперь параметры замечательно переданы в callback SetUpdateCallback. &nbsp;И вот подскажите пожалуйста, а можно ли подобное провернуть в Си ?? <br />=============<br />Вы можете передать любые параметры в любую функцию через внешние для нее параметры<br />Это могут быть либо глобальные либо локальные параметры блока<br />Например в вашем случае делаем так:<br />
====code====
<pre> local param1,param2;
-------------------------------------
function my_callback_ (index) 
--Теперь тут доступны внешние локальные параметры...my_table_, param1, param2 - помимо стандартного index
end
----------------
local my_table = CreateDataSource (code_class, code_paper_ interval)
parametr_1 = "1"
parametr_2 = "2"
my_table : SetUpdateCallback ( my_callback )
</pre>
=============
И не надо огород городить.<br />Вы можете таким же образом передать и таблицу и все что хотите. <br />
			<i>11.10.2022 13:57:04, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66135/topic7673/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66135/topic7673/</guid>
			<pubDate>Tue, 11 Oct 2022 13:57:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Передать в SetUpdateCallback дополнительные параметры</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message66130/topic7673/">Передать в SetUpdateCallback дополнительные параметры</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			При вызове SetUpdateCallback по умолчанию передать туда доп. параметры нельзя:<br /><br /><br />
====code====
<pre>function my_callback_(index)

--index - индекс свечи в таблице my_table, НО сама таблица по умолчанию не приходит, что просто дикость.

end


local my_table = CreateDataSource(code_class, code_paper_ interval)

my_table :SetUpdateCallback(my_callback_)</pre>
=============
<br /><br />Но, передать доп. параметры в callback - можно с помощью такой контракции, в данном случае я не знаю, что она означает на Lua, просто подсмотрел на данном форуме:<br /><br />
====code====
<pre>function my_callback_(my_table_, param1, param2, index)

--Теперь тут доступны переданные дополнительные параметры...my_table_, param1, param2 - помимо стандартного index

end


local my_table = CreateDataSource(code_class, code_paper_ interval)

parametr_1 = "1"
parametr_2 = "2"

my_table :SetUpdateCallback(function(idx)my_callback_(my_table,parametr_1, parametr_2, idx) end)</pre>
=============
<br /><br /><br /><p>И теперь параметры замечательно переданы в callback SetUpdateCallback.</p><p>И вот подскажите пожалуйста, а можно ли подобное провернуть в Си ??</p> <br />
			<i>11.10.2022 12:22:49, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message66130/topic7673/</link>
			<guid>http://forum.quik.ru/messages/forum10/message66130/topic7673/</guid>
			<pubDate>Tue, 11 Oct 2022 12:22:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
