<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Авионика и Софт &mdash; Внешние функции]]></title>
		<link>http://www.forum.aviosoft.ru/viewtopic.php?id=213</link>
		<atom:link href="http://www.forum.aviosoft.ru/extern.php?action=feed&amp;tid=213&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Внешние функции».]]></description>
		<lastBuildDate>Wed, 24 Jul 2019 17:11:56 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=427#p427</link>
			<description><![CDATA[<p>Возьмём для примера демонстрационный проект Barrel. Ссылка на него имеется в окне САПР <em>Начальная страница</em>. Проект включает в себя две функции прорисовки. Остановимся на DrawScaleUnitTop. После кодогенерации проекта в файле Paint.c функция будет иметь вид:<br /></p><div class="codebox"><pre><code>void DrawScaleUnitTop(
   int32 iy,     /* смещение по Y */
   int32 inumber)     /* отображаемое число */
{

}</code></pre></div><p>Программный код тела функции опустим, он не имеет значения, важен её пролог и эпилог. Такой вид позволит созданному кодогенератором программному коду скомпилироваться, а начинку функции вы укажите свою такой, какая вам необходима.</p><br /><p>Теперь, что вам нужно сделать. Выделите в проекте САПР в окне <em>Функции</em> функцию прорисовки или вычисления, которую вы хотите подменить. В окне <em>Свойства</em> в группе <em>Внешний код</em> поле <em>Создание</em> установите в значение <em>Создавать</em>, а поле <em>Пролог, эпилог</em> в значение <em>Не добавлять</em>. После этого в поле <em>Программный код</em> задайте текст<br /></p><div class="quotebox"><blockquote><p>#include &quot;function.c&quot;</p></blockquote></div><p>Имя файла function.c может быть любым, а также содержать абсолютный или относительный путь перед ним.<br />Создайте файл с именем function.c и разместите его в папке, куда вы выполняете кодогенерацию. Т.е. он должен лежать рядом с файлом Paint.c, который будет ссылаться на него. В файле вы можете размещать любой нужный вам программный код. Важно, чтобы там также находился пролог и эпилог функции САПР, свойства которой вы только что изменили. Получить их можно, например, выполнив кодогенерацию, установив перед этим поле свойств функции <em>Пролог, эпилог</em> в значение <em>Добавлять</em>. В файле Paint.c при этом будет создан программный код вашей функции без содержимого, только её пролог и эпилог. Скопируйте их в файл function.c.<br />В результате после кодогенерации в файле Paint.c вместо вашей функции будет находиться текст<br /></p><div class="quotebox"><blockquote><p>#include &quot;function.c&quot;</p></blockquote></div><p>а в файле function.c уже сама функция со всем тем содержимым, которое вы заходите в неё добавить.</p>]]></description>
			<author><![CDATA[null@example.com (Admin)]]></author>
			<pubDate>Wed, 24 Jul 2019 17:11:56 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=427#p427</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=426#p426</link>
			<description><![CDATA[<p>Тело функции САПР имеет какую-то структуру? Можно какой-нибудь простейший пример *.c файла, который можно будет подключить к проекту?</p>]]></description>
			<author><![CDATA[null@example.com (fakolmykov)]]></author>
			<pubDate>Wed, 24 Jul 2019 07:18:44 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=426#p426</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=425#p425</link>
			<description><![CDATA[<p>Здравствуйте!<br />Да, на месте <em>&quot;ваш_файл&quot;</em> может быть указан путь к файлу с любым расширением или без него. Важно, что при компиляции строка <br /></p><div class="codebox"><pre><code>#include &quot;ваш_файл&quot;</code></pre></div><p>будет полностью заменена содержимым вашего файла. При этом, вставляемый файл, естественно, должен содержать и тело функции САПР, программный код которой вы подменяете своим.</p>]]></description>
			<author><![CDATA[null@example.com (Admin)]]></author>
			<pubDate>Tue, 23 Jul 2019 09:59:36 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=425#p425</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=424#p424</link>
			<description><![CDATA[<p>Добрый день.<br /> Не могли бы вы помочь с этим же вопросом. Как после этих действий:<br /></p><div class="quotebox"><cite>Бороденко Олег пишет:</cite><blockquote><p>Можно отказаться от генерации пролога и эпилога функции и полностью задать свой вид её программного кода с вызовом интересующей Вас внешней функции и размещением в начале Вашего кода<br /></p><div class="codebox"><pre><code>#include &quot;ваш_файл&quot;</code></pre></div><p>на внешний *.h или *.c файл.</p></blockquote></div><p> Можно вызвать функцию описанную в подключенном *.с файле?</p>]]></description>
			<author><![CDATA[null@example.com (fakolmykov)]]></author>
			<pubDate>Tue, 23 Jul 2019 08:29:25 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=424#p424</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=387#p387</link>
			<description><![CDATA[<p>С помощью полосного или веерного полигонов, или их комбинацией.</p>]]></description>
			<author><![CDATA[null@example.com (Admin)]]></author>
			<pubDate>Thu, 13 Dec 2018 11:37:29 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=387#p387</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=385#p385</link>
			<description><![CDATA[<p>Еще один вопрос. Как нам нарисовать произвольный (в том числе невыпуклый) закрашенный многоугольник?</p>]]></description>
			<author><![CDATA[null@example.com (ovmakieva)]]></author>
			<pubDate>Wed, 12 Dec 2018 07:15:50 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=385#p385</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=384#p384</link>
			<description><![CDATA[<p>Вам спасибо! Постараемся скоро это сделать.</p>]]></description>
			<author><![CDATA[null@example.com (Admin)]]></author>
			<pubDate>Tue, 11 Dec 2018 12:40:16 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=384#p384</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=383#p383</link>
			<description><![CDATA[<p>Спасибо за помощь! У нас получилось. Единственная просьба: в справочном пособии ничего не сказано о внешних функциях, не могли бы вы добавить в него описание их использования?</p>]]></description>
			<author><![CDATA[null@example.com (ovmakieva)]]></author>
			<pubDate>Tue, 11 Dec 2018 09:52:35 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=383#p383</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=382#p382</link>
			<description><![CDATA[<p>Да, конечно. Элементы функций вычисления и прорисовки имеют ряд полей свойств, объединённых в группу <em>Внешний код</em>. Это как раз механизм, позволяющий заменить автоматически создаваемый кодогенератором программный код вашим.<br />Далее возможны разные варианты. Можно отказаться от генерации пролога и эпилога функции и полностью задать свой вид её программного кода с вызовом интересующей Вас внешней функции и размещением в начале Вашего кода<br /></p><div class="codebox"><pre><code>#include &quot;ваш_файл&quot;</code></pre></div><p>на внешний *.h или *.c файл.<br />Или сохранить пролог и эпилог функции САПР, а <em>include</em> на внешний файл разместить в прологе всего <em>Paint.c</em> файла, указав это в настройках кодогенератора в закладке <em>Файлы</em> в группе <em>Paint.h/Paint.c</em> .</p>]]></description>
			<author><![CDATA[null@example.com (Admin)]]></author>
			<pubDate>Fri, 07 Dec 2018 13:49:55 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=382#p382</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=381#p381</link>
			<description><![CDATA[<p>Модуль - это &quot;*.c&quot;-файл. Необходимо использовать функцию, описанную в нём, в проекте САПР. Можем ли мы это сделать?</p>]]></description>
			<author><![CDATA[null@example.com (ovmakieva)]]></author>
			<pubDate>Fri, 07 Dec 2018 11:46:29 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=381#p381</guid>
		</item>
		<item>
			<title><![CDATA[Re: Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=379#p379</link>
			<description><![CDATA[<p>Здравствуйте!<br />Опишите, пожалуйста, более подробно, что вы имеете в виду. В каком виде функция и в целом для чего предназначается? Модуль – это dll файл или что-то другое?</p>]]></description>
			<author><![CDATA[null@example.com (Admin)]]></author>
			<pubDate>Wed, 05 Dec 2018 11:42:51 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=379#p379</guid>
		</item>
		<item>
			<title><![CDATA[Внешние функции]]></title>
			<link>http://www.forum.aviosoft.ru/viewtopic.php?pid=378#p378</link>
			<description><![CDATA[<p>Добрый день! Подскажите, пожалуйста, как подключить функцию из внешнего модуля?</p>]]></description>
			<author><![CDATA[null@example.com (ovmakieva)]]></author>
			<pubDate>Tue, 04 Dec 2018 07:06:33 +0000</pubDate>
			<guid>http://www.forum.aviosoft.ru/viewtopic.php?pid=378#p378</guid>
		</item>
	</channel>
</rss>
