<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Guardant &mdash; Странное поведение примера "03 - Preserved Variables"]]></title>
		<link>https://forum.guardant.ru/topic/581/</link>
		<atom:link href="https://forum.guardant.ru/feed/rss/topic/581" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Странное поведение примера "03 - Preserved Variables"».]]></description>
		<lastBuildDate>Wed, 14 Oct 2015 12:08:21 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Странное поведение примера "03 - Preserved Variables"]]></title>
			<link>https://forum.guardant.ru/post/2905/#p2905</link>
			<description><![CDATA[<p>Здравствуйте!<br />На этой недели выходит Guardant SDK Update 2, в его составе будет исправленный пример.</p>]]></description>
			<author><![CDATA[null@example.com (Станислав Петрушевский)]]></author>
			<pubDate>Wed, 14 Oct 2015 12:08:21 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/2905/#p2905</guid>
		</item>
		<item>
			<title><![CDATA[Re: Странное поведение примера "03 - Preserved Variables"]]></title>
			<link>https://forum.guardant.ru/post/2899/#p2899</link>
			<description><![CDATA[<div class="quotebox"><cite>Станислав Петрушевский пишет:</cite><blockquote><p>При вызове GrdCodeRun в буфер abInBuffer неявно записываются данные из массива iodata ( которые были записаны в dwP1=1)</p></blockquote></div><p>Т.е.:<br />1) Буфер вывода ведет себя аналогично NO_INIT-переменной?<br />2) Получается, что демонстрационный пример следует изменить, т.к. сейчас он демонстрирует то, без чего он и так &quot;работает&quot;)</p>]]></description>
			<author><![CDATA[null@example.com (dayznse)]]></author>
			<pubDate>Sat, 10 Oct 2015 20:51:54 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/2899/#p2899</guid>
		</item>
		<item>
			<title><![CDATA[Re: Странное поведение примера "03 - Preserved Variables"]]></title>
			<link>https://forum.guardant.ru/post/2894/#p2894</link>
			<description><![CDATA[<div class="quotebox"><cite>dayznse пишет:</cite><blockquote><p>Решил поэкспериментировать с примером &quot;03 - Preserved Variables&quot; для Code-ключей. В оригинальном примере загружаемый код вызывается дважды: один раз с параметром dwP1=1 (чтобы сохранить буфер в RAM-ключа), второй раз с параметром dwP2=2 (чтобы получить содержимое из RAM-ключа).<br />Оказалось, что если второй раз вызвать загружаемый код с параметром dwP1=3 (так чтобы ничего не выполнялось и вернулась -1), то в массив abInBuffer все равно записывается содержимое RAM ключа, хотя перед вызовом этот массив явно обнуляется, а внутри ключа (в коде) явного копирования не происходит. Сначала решил, что каким-то образом iodata[] и buffer[100] указывают на одну и ту же область памяти, но потом проверил адреса массивов и они оказались разные.</p><p>Поясните, пожалуйста, почему в массив abInBuffer (в основной программе) автоматически записывается содержимое buffer[100] (из ключа), несмотря на то, что я передаю dwP1=3, и соответственно, код копирования не выполняется (проверял)?</p></blockquote></div><p>В примере 3 буфер iodata используется как буфер ввода и вывода:&nbsp; <br />При вызове GrdCodeRun в буфер abInBuffer неявно записываются данные из массива iodata ( которые были записаны в dwP1=1)</p>]]></description>
			<author><![CDATA[null@example.com (Станислав Петрушевский)]]></author>
			<pubDate>Fri, 09 Oct 2015 09:50:27 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/2894/#p2894</guid>
		</item>
		<item>
			<title><![CDATA[Re: Странное поведение примера "03 - Preserved Variables"]]></title>
			<link>https://forum.guardant.ru/post/2893/#p2893</link>
			<description><![CDATA[<p>Здравствуйте!</p><p>1. Буфер ввода&nbsp; неявно обновляется при вызове (новыми данными если они переданы ключу).<br />Буфер вывода не обновляется.</p><p>2. Правильнее будет объявлять extern DWORD iodata[] c указанием размера в makefile.</p>]]></description>
			<author><![CDATA[null@example.com (Станислав Петрушевский)]]></author>
			<pubDate>Fri, 09 Oct 2015 09:49:04 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/2893/#p2893</guid>
		</item>
		<item>
			<title><![CDATA[Re: Странное поведение примера "03 - Preserved Variables"]]></title>
			<link>https://forum.guardant.ru/post/2880/#p2880</link>
			<description><![CDATA[<p>Здравствуйте!<br />Мы переадресовали Ваши вопросы нашим разработчикам. Ответ будет до конца этой недели.</p>]]></description>
			<author><![CDATA[null@example.com (Станислав Петрушевский)]]></author>
			<pubDate>Tue, 06 Oct 2015 12:02:18 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/2880/#p2880</guid>
		</item>
		<item>
			<title><![CDATA[Re: Странное поведение примера "03 - Preserved Variables"]]></title>
			<link>https://forum.guardant.ru/post/2876/#p2876</link>
			<description><![CDATA[<p>Правильно ли я понимаю, что буферы ввода-вывода в ключе:<br />1) Сохраняют свои данные между вызовами загружаемого кода точно также, как и NO_INIT-переменные?<br />2) Размер буфера определяется не размером, указанном в коде для ключа, а размером заданном в makefile? Т.е. например, если в коде буфер буден задан как char iodata[512], а в makefile CFG_OUTPUT_BUFFER_SIZE=0x400, то реальный размер буфера будет 0x400, а не 0x200?</p>]]></description>
			<author><![CDATA[null@example.com (dayznse)]]></author>
			<pubDate>Mon, 05 Oct 2015 22:06:06 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/2876/#p2876</guid>
		</item>
		<item>
			<title><![CDATA[Странное поведение примера "03 - Preserved Variables"]]></title>
			<link>https://forum.guardant.ru/post/2875/#p2875</link>
			<description><![CDATA[<p>Решил поэкспериментировать с примером &quot;03 - Preserved Variables&quot; для Code-ключей. В оригинальном примере загружаемый код вызывается дважды: один раз с параметром dwP1=1 (чтобы сохранить буфер в RAM-ключа), второй раз с параметром dwP2=2 (чтобы получить содержимое из RAM-ключа).<br />Оказалось, что если второй раз вызвать загружаемый код с параметром dwP1=3 (так чтобы ничего не выполнялось и вернулась -1), то в массив abInBuffer все равно записывается содержимое RAM ключа, хотя перед вызовом этот массив явно обнуляется, а внутри ключа (в коде) явного копирования не происходит. Сначала решил, что каким-то образом iodata[] и buffer[100] указывают на одну и ту же область памяти, но потом проверил адреса массивов и они оказались разные.</p><p>Поясните, пожалуйста, почему в массив abInBuffer (в основной программе) автоматически записывается содержимое buffer[100] (из ключа), несмотря на то, что я передаю dwP1=3, и соответственно, код копирования не выполняется (проверял)?</p>]]></description>
			<author><![CDATA[null@example.com (dayznse)]]></author>
			<pubDate>Mon, 05 Oct 2015 12:16:58 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/2875/#p2875</guid>
		</item>
	</channel>
</rss>
