<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Исключение при вызове функции getSecurityInfo()]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Исключение при вызове функции getSecurityInfo() форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 09 Apr 2026 01:09:30 +0300</pubDate>
		<item>
			<title>Исключение при вызове функции getSecurityInfo()</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6488/topic674/">Исключение при вызове функции getSecurityInfo()</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br />От Вас нужно:<br />- версия терминала<br />- дамп падения если он есть <br />
			<i>30.06.2015 10:37:36, Michael Bulychev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6488/topic674/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6488/topic674/</guid>
			<pubDate>Tue, 30 Jun 2015 10:37:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Исключение при вызове функции getSecurityInfo()</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6483/topic674/">Исключение при вызове функции getSecurityInfo()</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте,<br />Без сторонних библиотек, на чистом LUA, указанная проблема у нас не воспроизводится.<br />Следует понимать, что хоть LUA и позволяет интегрировать свои библиотеки в терминал, возникновение проблем с ними не является нашей зоной ответственности.<br />А в данном случае, проблема именно в библиотеке, а не в терминале. <br />
			<i>30.06.2015 10:04:02, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6483/topic674/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6483/topic674/</guid>
			<pubDate>Tue, 30 Jun 2015 10:04:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Исключение при вызове функции getSecurityInfo()</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6481/topic674/">Исключение при вызове функции getSecurityInfo()</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Забыл упомянуть, что исключение возникает при вызове lua_next(). <br />
			<i>29.06.2015 20:46:27, Andrey Perchits.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6481/topic674/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6481/topic674/</guid>
			<pubDate>Mon, 29 Jun 2015 20:46:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Исключение при вызове функции getSecurityInfo()</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6480/topic674/">Исключение при вызове функции getSecurityInfo()</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br /><br />К сожалению, не нашел, где у вас баг-трекер, поэтому пишу сюда.<br /><br />Я разрабатываю коннектор для алгоритмической торговли через интерфейс C++ - Lua. В lua скрипте только лишь загружается библиотека, весь остальной функционал реализован на C++.<br />Выяснилось, что в момент вызова функции getSecurityInfo() в случае, если у терминала нет информации по запрашиваемой бумаге, он возвращает данные по бумаге, по которой у него был в последный раз удачный вызов. Если же до этого не было вызовов данной функции, терминал прекращает работу скрипта с сообщении о необработанном исключении. Могу предположить, что в этот момент в самом терминале происходит чтение неинициализированной памяти или нечто в этом роде.<br /><br />Пример кода:<br /> <br />
====code====
<pre>boost::shared_ptr&#60;Security&#62;
initFirstLegalSecurity(std::string const&#38; class_code, std::string const&#38; sec_code)
{
&nbsp;&nbsp;boost::shared_ptr&#60;Security&#62; result;

&nbsp;&nbsp;lua_getglobal(lua_state_, "getSecurityInfo");
&nbsp;&nbsp;lua_pushstring(lua_state_, class_code.c_str());
&nbsp;&nbsp;lua_pushstring(lua_state_, sec_code.c_str());

&nbsp;&nbsp;int result = lua_pcall(lua_state_, 2, 1, 0);
&nbsp;&nbsp;if(result == 0)
&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;result = boost::shared_ptr&#60;Security&#62;(new Security(class_code, sec_code));
&nbsp;&nbsp;&nbsp;&nbsp;int item_idx = lua_gettop(lua_state_);
&nbsp;&nbsp;&nbsp;&nbsp;lua_pushnil(lua_state_);
&nbsp;&nbsp;&nbsp;&nbsp;while(lua_next(lua_state_, item_idx) != 0)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::string key = lua_tostring(lua_state_, -2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(key == "scale")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;security-&#62;setScale(lua_tonumber(lua_state_, -1));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(key == "lot_size")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;security-&#62;setLotSize(lua_tonumber(lua_state_, -1));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(key == "min_price_step")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;security-&#62;setMinPriceStep(lua_tonumber(lua_state_, -1));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lua_pop(lua_state_, 1);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
&nbsp;&nbsp;lua_pop(lua_state_, 1);
&nbsp;&nbsp;return result;
} </pre>
=============
 <br />С уважением,<br />Андрей. <br />
			<i>29.06.2015 20:39:05, Andrey Perchits.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6480/topic674/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6480/topic674/</guid>
			<pubDate>Mon, 29 Jun 2015 20:39:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
