<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Tue, 21 Apr 2026 17:37:49 +0300</pubDate>
		<item>
			<title>Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message30425/topic3564/">Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</a></b> <i>Подключение dll через добавление и запуск Lua скрипта </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_HPXxSvgI" href="/user/21/" bx-tooltip-user-id="21">Michael Bulychev</a> написал:<br />Добрый день.<br />Считаем что 1.dll и 2.dll лежать в одном каталоге<br />в 1.dll должен присутствовать код, который делает примерно следующее (без обработки ошибок):<br />1. <br />
====code====
<pre>&nbsp;&nbsp;bool getDllPath(char&nbsp;&nbsp;* out_path, size_t max_size)
{
&nbsp;&nbsp;&nbsp;&nbsp;char path&#91;MAX_PATH&#93;&nbsp;&nbsp;=&nbsp;&nbsp;{};
&nbsp;&nbsp;&nbsp;&nbsp;HMODULE hm&nbsp;&nbsp;=&nbsp;&nbsp;NULL;

&nbsp;&nbsp;&nbsp;&nbsp; if ( GetModuleHandleEx( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS&nbsp;&nbsp;|&nbsp;&nbsp;GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(LPSTR)&nbsp;&nbsp;&#38; getDllPath,&nbsp;&nbsp;&#38; hm ) )
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetModuleFileName( hm, path, sizeof(path) );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/ * 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; тут надо обрезать из path&nbsp;&nbsp;"1.dll"&nbsp;&nbsp;или&nbsp;&nbsp;"&#92;&#92;1.dll" , по вкусу
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; и скопировать в out_path
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * /
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;..&nbsp;&nbsp;.. .
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp; true ;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; false ;
}&nbsp;&nbsp;</pre>
=============
<br />2. При успешном выполнении к out_path приклеить &quot;2.dll&quot; и загрузить ее через LoadLibrary<br /><br /><br /> <noindex><a href="https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683200(v=vs.85).aspx" target="_blank" rel="nofollow">https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683200(v=vs.85).aspx</a></noindex> <br /> <noindex><a href="https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683197(v=vs.85).aspx" target="_blank" rel="nofollow">https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683197(v=vs.85).aspx</a></noindex> <br />=============<br /><br />в path пишется абсолютный путь 1.dll !!!<br />Респект! <br />Все как и ожидалось :)))) Quik не причем, это я изменил в функции LoadLibrary() путь к 2.dll с абсолютно указанного на относительный и даже не подумал... Как-то так :))) <br /> <br /> &nbsp; <br />
			<i>12.04.2018 08:15:12, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message30425/topic3564/</link>
			<guid>http://forum.quik.ru/messages/forum10/message30425/topic3564/</guid>
			<pubDate>Thu, 12 Apr 2018 08:15:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message30421/topic3564/">Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</a></b> <i>Подключение dll через добавление и запуск Lua скрипта </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br />Считаем что 1.dll и 2.dll лежать в одном каталоге<br />в 1.dll должен присутствовать код, который делает примерно следующее (без обработки ошибок):<br />1. <br />
====code====
<pre>bool getDllPath(char *out_path, size_t max_size)
{
&nbsp;&nbsp;&nbsp;&nbsp;char path&#91;MAX_PATH&#93; = {};
&nbsp;&nbsp;&nbsp;&nbsp;HMODULE hm = NULL;

&nbsp;&nbsp;&nbsp;&nbsp;if( GetModuleHandleEx( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(LPSTR) &#38;getDllPath, &#38;hm ) )
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetModuleFileName( hm, path, sizeof(path) );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; тут надо обрезать из path "1.dll" или "&#92;&#92;1.dll", по вкусу
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; и скопировать в out_path
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .....
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;return false;
}</pre>
=============
<br />2. При успешном выполнении к out_path приклеить &quot;2.dll&quot; и загрузить ее через LoadLibrary<br /><br /><br /><noindex><a href="https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683200(v=vs.85).aspx" target="_blank" rel="nofollow">https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683200(v=vs.85).aspx</a></noindex><br /><noindex><a href="https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683197(v=vs.85).aspx" target="_blank" rel="nofollow">https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683197(v=vs.85).aspx</a></noindex> <br />
			<i>12.04.2018 05:36:53, Michael Bulychev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message30421/topic3564/</link>
			<guid>http://forum.quik.ru/messages/forum10/message30421/topic3564/</guid>
			<pubDate>Thu, 12 Apr 2018 05:36:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message30405/topic3564/">Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</a></b> <i>Подключение dll через добавление и запуск Lua скрипта </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Возможно спрашиваю не по-русски :))) Попробую иначе:<br /><br />Есть Quik 7.16.3.14, библиотека 1.dll для QLua, в которой есть загрузка другой библиотеки 2.dll через функцию LoadLibrary();<br /><br />1. Запускаю Quik-&gt;Сервис-&gt;Lua скрипты...<br />-&gt;В окне &quot;Загруженные скрипты&quot; - пустота<br />2. Жму на &quot;Добавить&quot;, выбираю свой Lua-скрипт с функцией require(&quot;1.dll&quot;)<br />-&gt;появляется файл моего Lua-скрипта в окне &quot;Загруженные скрипты&quot; <br />3. Выделяю его, жму &quot;Запустить&quot;<br />-&gt; Функция LoadLibrary() в 1.dll загружает 2.dll и Lua скрипт работает<br />4. Жму &quot;Остановить&quot; <br />-&gt; Lua скрипт останавливается<br />5. Жму &quot;Запустить&quot; <br />-&gt; Lua скрипт работает и функция LoadLibrary() в 1.dll загружает 2.dll<br />6. Жму &quot;Остановить&quot; <br />-&gt; Lua скрипт останавливается<br />7. Закрываю окно. Закрываю Quik.<br />8. Запускаю Quik-&gt;Сервис-&gt;Lua скрипты..<br />-&gt;В окне &quot;Загруженные скрипты&quot; &nbsp;есть файл моего Lua-скрипта<br />9. Выбираю, жму &quot;Загрузить&quot;<br />-&gt; Lua скрипт работает, 1.dll - работает, а вот функция LoadLibrary() 2.dll не загружает.... ПОЧЕМУ?<br />10. Жму &quot;Остановить&quot;, &quot;Удалить&quot;, &quot;Добавить&quot;, выбираю свой скрипт и т.д... жму &quot;Запустить&quot; <br />-&gt; Все опять работает до следующей перезагрузки Quik. <br /><br />В предыдущих версиях Quik работало во всех случаях! <br />Кто сталкивался? Подскажите куда смотреть?<br />Что это? особенности сборки нового Quik? <br />
			<i>11.04.2018 15:13:10, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message30405/topic3564/</link>
			<guid>http://forum.quik.ru/messages/forum10/message30405/topic3564/</guid>
			<pubDate>Wed, 11 Apr 2018 15:13:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message30396/topic3564/">Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</a></b> <i>Подключение dll через добавление и запуск Lua скрипта </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Уточнение.<br />При повторном запуске Lua скрипта после перезапуска Quik. &nbsp; <br />
			<i>11.04.2018 08:53:50, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message30396/topic3564/</link>
			<guid>http://forum.quik.ru/messages/forum10/message30396/topic3564/</guid>
			<pubDate>Wed, 11 Apr 2018 08:53:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message30395/topic3564/">Изменения в добавлении и запуске Lua скриптов с обновлением версии QUIK</a></b> <i>Подключение dll через добавление и запуск Lua скрипта </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Есть собственная dll-ка, которая подключается &nbsp;через Lua к Quik. В этой dll динамически подключается еще одна dll (shared memory - <noindex><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms686958(v=vs.85).aspx" target="_blank" rel="nofollow">https://msdn.microsoft.com/en-us/library/windows/desktop/ms686958(v=vs.85).aspx</a></noindex> - как пример).<br />Обновился до последней версии Quik 7.16.3.14 и как итог при повторном запуске Lua скрипта, подключающего dll, вторая dll(shared memory) не подключается:((( &nbsp;Если же удалить скрипт из списка загруженных и добавить по новой, то при первом запуске все срабатывает как и в старой версии. Что могло измениться? <br />
			<i>11.04.2018 08:46:29, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message30395/topic3564/</link>
			<guid>http://forum.quik.ru/messages/forum10/message30395/topic3564/</guid>
			<pubDate>Wed, 11 Apr 2018 08:46:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
