<?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; Создать новый стек Lua]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=411</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=411&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Создать новый стек Lua».]]></description>
		<lastBuildDate>Thu, 13 Oct 2022 03:27:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Создать новый стек Lua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3831#p3831</link>
			<description><![CDATA[<div class="quotebox"><cite>Serg_ пишет:</cite><blockquote><p>Стек создается, он не равен нулю.<br />В стек добавляются элементы - то есть он рабочий.<br />Но, как я вызываю lua_pcall - то lua_pcall завершается ошибкой &quot;attempt to call a nil value&quot;.</p><p>Со автоматически созданный стеком Lua_stek - никаких ошибок нет, все работает.</p><p>Что это может быть ?</p></blockquote></div><p>В созданном стеке - только функции чистого Lua. Никаких CreateDataSource там нет, никто их туда не добавлял.<br />Более того, даже стандартных библиотек Lua (string, math) там тоже нет, они тоже не добавлены.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 13 Oct 2022 03:27:19 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3831#p3831</guid>
		</item>
		<item>
			<title><![CDATA[Создать новый стек Lua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=3826#p3826</link>
			<description><![CDATA[<p>Час от часу не легче...</p><p>Есть такой простой код:</p><p>В квике Lua-скрипт:</p><div class="codebox"><pre><code>function main()

Quik_Lua_connector= require(&quot;Quil_Lua_connector_work_TEST&quot;)    

Quik_Lua_connector.TestFunc_run_WinConsole_for_dll()

Quik_Lua_connector.run_Cpp() 

-------------------------
while not stopped do 
sleep(1)
end 
-------------------------
end</code></pre></div><br /><p>В С++ соответственно:</p><div class="codebox"><pre><code>static int run_Cpp(lua_State* Lua_stek)
{

    lua_State* L = luaL_newstate();

    if (L == NULL)
    {
        std::cout &lt;&lt; &quot;L == NULL&quot; &lt;&lt; std::endl;    //Ошибки нет.
    }

lua_getglobal(L, &quot;CreateDataSource&quot;);           

lua_pushstring(L, &quot;TQBR&quot;);    
lua_pushstring(L, &quot;GAZP&quot;);         
lua_pushnumber(L, &quot;INTERVAL_MN1&quot;);                

std::cout &lt;&lt; &quot;Size_stack:&quot; &lt;&lt; lua_gettop(L) &lt;&lt; std::endl;   //Размер 4 - как и должно быть

int status_lua_pcall = lua_pcall(L, 3, 2, 0);   
    
if(status_lua_pcall  != 0)
{
std::cout&lt;&lt;&quot;Error&quot;&lt;&lt;std::endl;   //attempt to call a nil value
}

}</code></pre></div><p>То есть я хочу использовать не автоматически созданный при вызове функции run_Cpp - Lua стек, а создать свой новый - через luaL_newstate.</p><p>Стек создается, он не равен нулю.<br />В стек добавляются элементы - то есть он рабочий.<br />Но, как я вызываю lua_pcall - то lua_pcall завершается ошибкой &quot;attempt to call a nil value&quot;.</p><p>Со автоматически созданный стеком Lua_stek - никаких ошибок нет, все работает.</p><p>Что это может быть ?</p>]]></description>
			<author><![CDATA[null@example.com (Serg_)]]></author>
			<pubDate>Wed, 12 Oct 2022 15:34:35 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=3826#p3826</guid>
		</item>
	</channel>
</rss>
