<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=Lib.RegisterFunction</id>
	<title>Lib.RegisterFunction - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=Lib.RegisterFunction"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;action=history"/>
	<updated>2026-04-05T09:24:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4945&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4945&amp;oldid=prev"/>
		<updated>2025-01-22T06:54:17Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:54, 22 January 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4944&amp;oldid=prev</id>
		<title>1&gt;Admin at 06:31, 2 November 2024</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4944&amp;oldid=prev"/>
		<updated>2024-11-02T06:31:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:31, 2 November 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot; &gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Синтаксис ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Синтаксис ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Grey|Lib.}}'''RegisterFunction'''(''&amp;lt;Имя функции (STRING)&amp;gt;''{{Optional|&amp;lt;Способ вызова (STRING)&amp;gt;{{Default|{{Eq}}&amp;quot;Stdcall&amp;quot;}},&amp;lt;Аргументы функции (STRING)&amp;gt;,&amp;lt;Возвращаемое значение (STRING)&amp;gt;}})&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Grey|Lib.}}'''RegisterFunction'''(''&amp;lt;Имя функции (STRING)&amp;gt;''{{Optional|&amp;lt;Способ вызова (STRING)&amp;gt;{{Default|{{Eq}}&amp;quot;Stdcall&amp;quot;}},&amp;lt;Аргументы функции (STRING)&amp;gt;,&amp;lt;Возвращаемое значение (STRING&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;)&amp;gt;,&amp;lt;Системный адрес функции (INT&lt;/ins&gt;)&amp;gt;}})&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Аргументы ====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Аргументы ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot; &gt;Line 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''S&amp;lt;Размер в байтах&amp;gt;''' или '''SW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка фиксированной длины. Строка может иметь формат ANSI (''S'') или UTF-16 (''SW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы (для которых вызов выполняется несколько быстрее, чем для строк).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''S&amp;lt;Размер в байтах&amp;gt;''' или '''SW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка фиксированной длины. Строка может иметь формат ANSI (''S'') или UTF-16 (''SW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы (для которых вызов выполняется несколько быстрее, чем для строк).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;''&amp;lt;Возвращаемое значение (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Имеет формат одного аргумента функции (см. выше), если аргумент опущен, возвращаемое функцией значение будет игнорировано (функция не возвращает значения).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;''&amp;lt;Возвращаемое значение (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Имеет формат одного аргумента функции (см. выше), если аргумент опущен, возвращаемое функцией значение будет игнорировано (функция не возвращает значения).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;code&amp;gt;''&amp;lt;Системный адрес функции (INT)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Если аргумент указан, поиск функции не будет производиться (под Windows, &amp;lt;code&amp;gt;GetProcAddress&amp;lt;/code&amp;gt; не будет вызываться), а указанное значение будет использовано, как системный указатель на адрес функции. Такой способ задания адреса необходим в случаях, когда адрес находится нестандартным способом. К примеру, для OpenGL под Windows необходимо использовать функцию &amp;lt;code&amp;gt;wglGetProcAddress&amp;lt;/code&amp;gt;, для нахождения указателей.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Примеры ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Примеры ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4580&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4580&amp;oldid=prev"/>
		<updated>2023-06-08T10:11:40Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 10:11, 8 June 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4579&amp;oldid=prev</id>
		<title>1&gt;Admin at 18:09, 15 May 2023</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=4579&amp;oldid=prev"/>
		<updated>2023-05-15T18:09:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:09, 15 May 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot; &gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Аргументы ====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Аргументы ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;''&amp;lt;Имя функции (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - Аргумент задает точное имя импортируемой функции и, если необходимо, локальное имя функции, с помощью которого она может быть вызвана из программы. Формат аргумента следующий: &amp;lt;code&amp;gt;&amp;lt;Имя функции для импорта&amp;gt;[:&amp;lt;Локальное имя для вызова&amp;gt;]&amp;lt;/code&amp;gt;. Если часть с локальным именем не используется, функция будет зарегистрирована под своим именем импорта.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;''&amp;lt;Имя функции (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - Аргумент задает точное имя импортируемой функции и, если необходимо, локальное имя функции, с помощью которого она может быть вызвана из программы. Формат аргумента следующий: &amp;lt;code&amp;gt;&amp;lt;Имя функции для импорта&amp;gt;[:&amp;lt;Локальное имя для вызова&amp;gt;]&amp;lt;/code&amp;gt;. Если часть с локальным именем не используется, функция будет зарегистрирована под своим именем импорта.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;''&amp;lt;Способ вызова (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Аргумент задает способ вызова функции (см. [[Объект загружаемой системной библиотеки|статью]] для дополнительной информации). Возможны &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;следюущие &lt;/del&gt;значения аргумента:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;''&amp;lt;Способ вызова (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Аргумент задает способ вызова функции (см. [[Объект загружаемой системной библиотеки|статью]] для дополнительной информации). Возможны &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;следующие &lt;/ins&gt;значения аргумента:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''stdcall''' (x86,x64) -- стандартный способ вызова функций Windows, используется по умолчанию. Для x64 является единственным доступным способом вызова.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''stdcall''' (x86,x64) -- стандартный способ вызова функций Windows, используется по умолчанию. Для x64 является единственным доступным способом вызова.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''cdecl''' (x86) -- используется при вызове функций, скомпилированных с помощью C или C++. Система позволяет использование такого способа вызова вместо вызовов stdcall, но не наоборот. Если для библиотек, скомпилированных со способом вызова cdecl указать способ вызова stdcall, можно получить порчу памяти или привести клиент нерабочее состояние.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''cdecl''' (x86) -- используется при вызове функций, скомпилированных с помощью C или C++. Система позволяет использование такого способа вызова вместо вызовов stdcall, но не наоборот. Если для библиотек, скомпилированных со способом вызова cdecl указать способ вызова stdcall, можно получить порчу памяти или привести клиент нерабочее состояние.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot; &gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''+''' (префикс) -- определяет то, что данный аргумент всегда будет передаваться в стек, а не с помощью регистра процессора. Флаг имеет значение только для способа вызова функции ''register''. Для его использования необходимо полностью понимать, как работает вызов функции (calling convention) такого типа. Обычно нет необходимости в использовании этого префикса, система сама правильно определит какие аргументы будут передаваться в стек, а какие с помощью регистров.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''+''' (префикс) -- определяет то, что данный аргумент всегда будет передаваться в стек, а не с помощью регистра процессора. Флаг имеет значение только для способа вызова функции ''register''. Для его использования необходимо полностью понимать, как работает вызов функции (calling convention) такого типа. Обычно нет необходимости в использовании этого префикса, система сама правильно определит какие аргументы будут передаваться в стек, а какие с помощью регистров.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''I&amp;lt;Размер в битах&amp;gt;''' или '''Int&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает целый тип аргумента. Размер может принимать следующие значения: '''8''', '''16''', '''32''', '''64'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''I&amp;lt;Размер в битах&amp;gt;''' или '''Int&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает целый тип аргумента. Размер может принимать следующие значения: '''8''', '''16''', '''32''', '''64'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''N''' или '''Native''' (наименование типа данных) -- задает целый тип аргумента с размером текущей &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;архитектура &lt;/del&gt;исполнения. Для ''x86'' длина поля будет &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;поставлять &lt;/del&gt;32 бита, для ''x64'' -- 64 бита.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''N''' или '''Native''' (наименование типа данных) -- задает целый тип аргумента с размером&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, задаваемым &lt;/ins&gt;текущей &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;архитектурой &lt;/ins&gt;исполнения &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;приложения&lt;/ins&gt;. Для ''x86'' длина поля будет &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;представлять &lt;/ins&gt;32 бита, для ''x64'' -- 64 бита.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''R&amp;lt;Размер в битах&amp;gt;''' или '''Real&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает вещественный тип аргумента. Размер может принимать следующие значения: '''32''' (одинарная точность), '''64''' (двойная точность), '''80''' (расширенная точность). Расширенная точность не поддерживается при стандартных вызовах &amp;quot;x64&amp;quot; функций, при написании расширения программы, можно пользоваться, к примеру, ссылкой на вещественное число ('''P''') и получение его из буфера.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''R&amp;lt;Размер в битах&amp;gt;''' или '''Real&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает вещественный тип аргумента. Размер может принимать следующие значения: '''32''' (одинарная точность), '''64''' (двойная точность), '''80''' (расширенная точность). Расширенная точность не поддерживается при стандартных вызовах &amp;quot;x64&amp;quot; функций, при написании расширения программы, можно пользоваться, к примеру, ссылкой на вещественное число ('''P''') и получение его из буфера.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''B&amp;lt;Размер в битах&amp;gt;''' или '''Bool&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает булевый тип аргумента. Размер может принимать следующие значения: '''8''', '''16''', '''32''', '''64'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''B&amp;lt;Размер в битах&amp;gt;''' или '''Bool&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает булевый тип аргумента. Размер может принимать следующие значения: '''8''', '''16''', '''32''', '''64'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''P''' или '''Pointer''' (наименование типа данных) -- задает тип данных указателя на данные. Для ''x86'' длина поля будет поставлять 32 бита, для ''x64'' -- 64 бита. При вызове функцией в аргументы такого типа удобно передавать объекты буфера или записи.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''P''' или '''Pointer''' (наименование типа данных) -- задает тип данных указателя на данные. Для ''x86'' длина поля будет поставлять 32 бита, для ''x64'' -- 64 бита. При вызове функцией в аргументы такого типа удобно передавать объекты буфера или записи&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Также можно задавать аргументы с типом [[Lib.CreateCallbackFunction|Функция обработного вызова]], что может часто использоваться в процессе выполнения сложных функций&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''SZ&amp;lt;Размер в байтах&amp;gt;''' или '''SZW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка, заканчивающаяся нулевым символом. Строка может иметь формат ANSI (''SZ'') или UTF-16 (''SZW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы или записи (для которых вызов выполняется несколько быстрее, чем для строк).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''SZ&amp;lt;Размер в байтах&amp;gt;''' или '''SZW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка, заканчивающаяся нулевым символом. Строка может иметь формат ANSI (''SZ'') или UTF-16 (''SZW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы или записи (для которых вызов выполняется несколько быстрее, чем для строк).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''S&amp;lt;Размер в байтах&amp;gt;''' или '''SW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка фиксированной длины. Строка может иметь формат ANSI (''S'') или UTF-16 (''SW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы (для которых вызов выполняется несколько быстрее, чем для строк).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''S&amp;lt;Размер в байтах&amp;gt;''' или '''SW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка фиксированной длины. Строка может иметь формат ANSI (''S'') или UTF-16 (''SW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы (для которых вызов выполняется несколько быстрее, чем для строк).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=3902&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=3902&amp;oldid=prev"/>
		<updated>2021-06-28T07:02:26Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 07:02, 28 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=3901&amp;oldid=prev</id>
		<title>1&gt;Admin at 09:02, 21 June 2021</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=3901&amp;oldid=prev"/>
		<updated>2021-06-21T09:02:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 09:02, 21 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot; &gt;Line 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''^''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указателем, ''pointer'') на данные, а не самими данными. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''^''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указателем, ''pointer'') на данные, а не самими данными. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''^^''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указатель, ''pointer'') на ссылку на данные, а не самими данными. Префикс можно эмулировать с помощью манипуляции с буфером данных.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''^^''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указатель, ''pointer'') на ссылку на данные, а не самими данными. Префикс можно эмулировать с помощью манипуляции с буфером данных.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''@''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указателем, ''pointer'') на данные, а не самими данными. Также помечает аргументы &amp;quot;by ref&amp;quot;, т.е., &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;рагументы&lt;/del&gt;, значение которых может быть изменено функцией и должно быть передано назад в вызывавшую программу. '''Важно''': без этого префикса, измененные функцией значения будут утеряны. Префикс может дополняться префиксом ''^'', если необходимо.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''@''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указателем, ''pointer'') на данные, а не самими данными. Также помечает аргументы &amp;quot;by ref&amp;quot;, т.е., &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;аргументы&lt;/ins&gt;, значение которых может быть изменено функцией и должно быть передано назад в вызывавшую программу. '''Важно''': без этого префикса, измененные функцией значения будут утеряны. Префикс может дополняться префиксом ''^'', если необходимо.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''U''' (префикс) -- используется для типов ''I'' или ''N'', указывает на то, что данные представляют собой беззнаковое число (по умолчанию число со знаком)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''U''' (префикс) -- используется для типов ''I'' или ''N'', указывает на то, что данные представляют собой беззнаковое число (по умолчанию число со знаком)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''#''' (префикс) -- определяет то, что выделение памяти для аргументов (к примеру, для передаваемых строк), будет происходить с помощью системной функции GlobalAlloc. Некоторые типы вызовов могут требовать такой подход.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** '''#''' (префикс) -- определяет то, что выделение памяти для аргументов (к примеру, для передаваемых строк), будет происходить с помощью системной функции GlobalAlloc. Некоторые типы вызовов могут требовать такой подход.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=1420&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=1420&amp;oldid=prev"/>
		<updated>2021-02-07T06:51:38Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:51, 7 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=1419&amp;oldid=prev</id>
		<title>Admin at 18:52, 24 June 2020</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=Lib.RegisterFunction&amp;diff=1419&amp;oldid=prev"/>
		<updated>2020-06-24T18:52:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{infobox function&lt;br /&gt;
|name=RegisterFunction&lt;br /&gt;
|object=[[Объект загружаемой системной библиотеки|Библиотека]]&lt;br /&gt;
|caption=Импорт функции&lt;br /&gt;
|type=1&lt;br /&gt;
|status=2&lt;br /&gt;
|db=0&lt;br /&gt;
|exception=Невозможно превратить в строку, функция не найдена&lt;br /&gt;
|visual=0}}&lt;br /&gt;
{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общее_описание_языка|Общее описание]]&lt;br /&gt;
* [[Объекты]]&lt;br /&gt;
* [[Объект загружаемой системной библиотеки|Библиотека]]}}&lt;br /&gt;
Функция производит попытку импорта функции по ее имени из библиотеки, если функция найдена, она будет добавлена к функциям, которые возможно вызвать из данного объекта. Для функции задается, если необходимо, список и типы данных аргументов, а также тип данных возвращаемого значения, если оно присутствует. &lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{{Grey|Lib.}}'''RegisterFunction'''(''&amp;lt;Имя функции (STRING)&amp;gt;''{{Optional|&amp;lt;Способ вызова (STRING)&amp;gt;{{Default|{{Eq}}&amp;quot;Stdcall&amp;quot;}},&amp;lt;Аргументы функции (STRING)&amp;gt;,&amp;lt;Возвращаемое значение (STRING)&amp;gt;}})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Имя функции (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - Аргумент задает точное имя импортируемой функции и, если необходимо, локальное имя функции, с помощью которого она может быть вызвана из программы. Формат аргумента следующий: &amp;lt;code&amp;gt;&amp;lt;Имя функции для импорта&amp;gt;[:&amp;lt;Локальное имя для вызова&amp;gt;]&amp;lt;/code&amp;gt;. Если часть с локальным именем не используется, функция будет зарегистрирована под своим именем импорта.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Способ вызова (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Аргумент задает способ вызова функции (см. [[Объект загружаемой системной библиотеки|статью]] для дополнительной информации). Возможны следюущие значения аргумента:&lt;br /&gt;
** '''stdcall''' (x86,x64) -- стандартный способ вызова функций Windows, используется по умолчанию. Для x64 является единственным доступным способом вызова.&lt;br /&gt;
** '''cdecl''' (x86) -- используется при вызове функций, скомпилированных с помощью C или C++. Система позволяет использование такого способа вызова вместо вызовов stdcall, но не наоборот. Если для библиотек, скомпилированных со способом вызова cdecl указать способ вызова stdcall, можно получить порчу памяти или привести клиент нерабочее состояние.&lt;br /&gt;
** '''fastcall''' (x86) -- используется при вызове функций, скомпилированных с помощью C или C++. Несовместим с другими способами вызова.&lt;br /&gt;
** '''register''' (x86) -- используется при вызове функций, скомпилированных с помощью Delphi или Free Pascal. Несовместим с другими способами вызова. Важно понимать, что, возможно, придется пометить некоторые параметры при вызове таких функций с помощью префикса &amp;quot;+&amp;quot; (см. ниже).&lt;br /&gt;
** '''vectorcall''' (x86,x64) -- способ вызова, оперирующий длинными числами (128 бит), в данный момент не поддерживается.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Аргументы функции (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Задает список и тип аргументов, передаваемых функции. Строка имеет следующий формат: &amp;lt;code&amp;gt;&amp;lt;Аргумент 1&amp;gt;,&amp;lt;Аргумент 2&amp;gt;,...&amp;lt;/code&amp;gt;. Где ''аргумент'' имеет следующий формат: &amp;lt;code&amp;gt;[&amp;lt;Префиксы типа данных&amp;gt;]&amp;lt;Тип данных аргумента&amp;gt;[&amp;lt;Размер типа данных&amp;gt;]&amp;lt;/code&amp;gt;. Далее даются все возможные префиксы и наименования типов данных:&lt;br /&gt;
** '''^''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указателем, ''pointer'') на данные, а не самими данными. &lt;br /&gt;
** '''^^''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указатель, ''pointer'') на ссылку на данные, а не самими данными. Префикс можно эмулировать с помощью манипуляции с буфером данных.&lt;br /&gt;
** '''@''' (префикс) -- определяет то, что аргумент будет являться ссылкой (указателем, ''pointer'') на данные, а не самими данными. Также помечает аргументы &amp;quot;by ref&amp;quot;, т.е., рагументы, значение которых может быть изменено функцией и должно быть передано назад в вызывавшую программу. '''Важно''': без этого префикса, измененные функцией значения будут утеряны. Префикс может дополняться префиксом ''^'', если необходимо.&lt;br /&gt;
** '''U''' (префикс) -- используется для типов ''I'' или ''N'', указывает на то, что данные представляют собой беззнаковое число (по умолчанию число со знаком)&lt;br /&gt;
** '''#''' (префикс) -- определяет то, что выделение памяти для аргументов (к примеру, для передаваемых строк), будет происходить с помощью системной функции GlobalAlloc. Некоторые типы вызовов могут требовать такой подход.&lt;br /&gt;
** '''~''' (префикс) -- определяет то, что выделенная под аргумент память не будет освобождена после выполнения функции. Этой опцией нужно пользоваться с особой осторожностью, так как неверное ее использование может привести к бесконтрольным утечкам памяти.&lt;br /&gt;
** '''+''' (префикс) -- определяет то, что данный аргумент всегда будет передаваться в стек, а не с помощью регистра процессора. Флаг имеет значение только для способа вызова функции ''register''. Для его использования необходимо полностью понимать, как работает вызов функции (calling convention) такого типа. Обычно нет необходимости в использовании этого префикса, система сама правильно определит какие аргументы будут передаваться в стек, а какие с помощью регистров.&lt;br /&gt;
** '''I&amp;lt;Размер в битах&amp;gt;''' или '''Int&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает целый тип аргумента. Размер может принимать следующие значения: '''8''', '''16''', '''32''', '''64'''.&lt;br /&gt;
** '''N''' или '''Native''' (наименование типа данных) -- задает целый тип аргумента с размером текущей архитектура исполнения. Для ''x86'' длина поля будет поставлять 32 бита, для ''x64'' -- 64 бита.&lt;br /&gt;
** '''R&amp;lt;Размер в битах&amp;gt;''' или '''Real&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает вещественный тип аргумента. Размер может принимать следующие значения: '''32''' (одинарная точность), '''64''' (двойная точность), '''80''' (расширенная точность). Расширенная точность не поддерживается при стандартных вызовах &amp;quot;x64&amp;quot; функций, при написании расширения программы, можно пользоваться, к примеру, ссылкой на вещественное число ('''P''') и получение его из буфера.&lt;br /&gt;
** '''B&amp;lt;Размер в битах&amp;gt;''' или '''Bool&amp;lt;Размер в битах&amp;gt;''' (наименование типа данных) -- задает булевый тип аргумента. Размер может принимать следующие значения: '''8''', '''16''', '''32''', '''64'''.&lt;br /&gt;
** '''P''' или '''Pointer''' (наименование типа данных) -- задает тип данных указателя на данные. Для ''x86'' длина поля будет поставлять 32 бита, для ''x64'' -- 64 бита. При вызове функцией в аргументы такого типа удобно передавать объекты буфера или записи.&lt;br /&gt;
** '''SZ&amp;lt;Размер в байтах&amp;gt;''' или '''SZW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка, заканчивающаяся нулевым символом. Строка может иметь формат ANSI (''SZ'') или UTF-16 (''SZW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы или записи (для которых вызов выполняется несколько быстрее, чем для строк).&lt;br /&gt;
** '''S&amp;lt;Размер в байтах&amp;gt;''' или '''SW&amp;lt;Размер в словах&amp;gt;''' (наименование типа данных) -- задает аргумент с типом строка фиксированной длины. Строка может иметь формат ANSI (''S'') или UTF-16 (''SW''). Строки всегда должны быть объявлены с префиксом ''^'' (ссылка на данные). Размер может принимать нулевое значение, если заранее неизвестно, строка какого размера будет использоваться. В случае нулевого размера, однако, при подготовке аргумента, размер будет выделен точно под строку. Кроме строковых значений, система принимает также буферы (для которых вызов выполняется несколько быстрее, чем для строк).&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Возвращаемое значение (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Имеет формат одного аргумента функции (см. выше), если аргумент опущен, возвращаемое функцией значение будет игнорировано (функция не возвращает значения).&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Function ПолучитьИмяПользователя()&lt;br /&gt;
  aAdvapi32:=Lib.Load(&amp;quot;advapi32.dll&amp;quot;);&lt;br /&gt;
  aAdvapi32.RegisterFunction(&amp;quot;GetUserNameW:GetUserName&amp;quot;,&amp;quot;stdcall&amp;quot;,&amp;quot;@SZW,@UN&amp;quot;,&amp;quot;B32&amp;quot;);&lt;br /&gt;
  аИмя:=RepeatStr(&amp;quot; &amp;quot;,256);&lt;br /&gt;
  аДлина:=Length(аИмя);&lt;br /&gt;
  аДлина0:=аДлина;&lt;br /&gt;
  While not aAdvapi32.GetUserName(аИмя,аДлина) Do&lt;br /&gt;
    //Недостаточный размер буфера&lt;br /&gt;
    аИмя:=RepeatStr(&amp;quot; &amp;quot;,аДлина0*2);&lt;br /&gt;
    аДлина:=Length(аИмя);&lt;br /&gt;
    аДлина0:=аДлина;&lt;br /&gt;
  EndDo;&lt;br /&gt;
  Exit аИмя;&lt;br /&gt;
EndFunction;&lt;br /&gt;
&lt;br /&gt;
Message(ПолучитьИмяПользователя());&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>