<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Авионика и Софт &mdash; Внешние функции]]></title>
	<link rel="self" href="http://www.forum.aviosoft.ru/extern.php?action=feed&amp;tid=213&amp;type=atom" />
	<updated>2019-07-24T17:11:56Z</updated>
	<generator>PunBB</generator>
	<id>http://www.forum.aviosoft.ru/viewtopic.php?id=213</id>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=427#p427" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Admin]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=2</uri>
			</author>
			<updated>2019-07-24T17:11:56Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=427#p427</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=426#p426" />
			<content type="html"><![CDATA[<p>Тело функции САПР имеет какую-то структуру? Можно какой-нибудь простейший пример *.c файла, который можно будет подключить к проекту?</p>]]></content>
			<author>
				<name><![CDATA[fakolmykov]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=292</uri>
			</author>
			<updated>2019-07-24T07:18:44Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=426#p426</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=425#p425" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />Да, на месте <em>&quot;ваш_файл&quot;</em> может быть указан путь к файлу с любым расширением или без него. Важно, что при компиляции строка <br /></p><div class="codebox"><pre><code>#include &quot;ваш_файл&quot;</code></pre></div><p>будет полностью заменена содержимым вашего файла. При этом, вставляемый файл, естественно, должен содержать и тело функции САПР, программный код которой вы подменяете своим.</p>]]></content>
			<author>
				<name><![CDATA[Admin]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=2</uri>
			</author>
			<updated>2019-07-23T09:59:36Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=425#p425</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=424#p424" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[fakolmykov]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=292</uri>
			</author>
			<updated>2019-07-23T08:29:25Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=424#p424</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=387#p387" />
			<content type="html"><![CDATA[<p>С помощью полосного или веерного полигонов, или их комбинацией.</p>]]></content>
			<author>
				<name><![CDATA[Admin]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=2</uri>
			</author>
			<updated>2018-12-13T11:37:29Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=387#p387</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=385#p385" />
			<content type="html"><![CDATA[<p>Еще один вопрос. Как нам нарисовать произвольный (в том числе невыпуклый) закрашенный многоугольник?</p>]]></content>
			<author>
				<name><![CDATA[ovmakieva]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=46</uri>
			</author>
			<updated>2018-12-12T07:15:50Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=385#p385</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=384#p384" />
			<content type="html"><![CDATA[<p>Вам спасибо! Постараемся скоро это сделать.</p>]]></content>
			<author>
				<name><![CDATA[Admin]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=2</uri>
			</author>
			<updated>2018-12-11T12:40:16Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=384#p384</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=383#p383" />
			<content type="html"><![CDATA[<p>Спасибо за помощь! У нас получилось. Единственная просьба: в справочном пособии ничего не сказано о внешних функциях, не могли бы вы добавить в него описание их использования?</p>]]></content>
			<author>
				<name><![CDATA[ovmakieva]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=46</uri>
			</author>
			<updated>2018-12-11T09:52:35Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=383#p383</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=382#p382" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Admin]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=2</uri>
			</author>
			<updated>2018-12-07T13:49:55Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=382#p382</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=381#p381" />
			<content type="html"><![CDATA[<p>Модуль - это &quot;*.c&quot;-файл. Необходимо использовать функцию, описанную в нём, в проекте САПР. Можем ли мы это сделать?</p>]]></content>
			<author>
				<name><![CDATA[ovmakieva]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=46</uri>
			</author>
			<updated>2018-12-07T11:46:29Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=381#p381</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=379#p379" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />Опишите, пожалуйста, более подробно, что вы имеете в виду. В каком виде функция и в целом для чего предназначается? Модуль – это dll файл или что-то другое?</p>]]></content>
			<author>
				<name><![CDATA[Admin]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=2</uri>
			</author>
			<updated>2018-12-05T11:42:51Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=379#p379</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Внешние функции]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=378#p378" />
			<content type="html"><![CDATA[<p>Добрый день! Подскажите, пожалуйста, как подключить функцию из внешнего модуля?</p>]]></content>
			<author>
				<name><![CDATA[ovmakieva]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=46</uri>
			</author>
			<updated>2018-12-04T07:06:33Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=378#p378</id>
		</entry>
</feed>
