Импортировать в программу это

Весь код в языке Go организуется в пакеты. Пакеты представляют удобную организацию разделения кода на отдельные части или модули. Модульность позволяет определять один раз пакет с нужной функциональностью и потом использовать его многкратно в различных программах.

Код пакета располагается в одном или нескольких файлах с расширением go . Для определения пакета применяется ключевое слово package . Например:

package main import «fmt» func main()

В данном случае пакет называется main . Определение пакета должно идти в начале файла.

Есть два типа пакетов: исполняемые (executable) и библиотеки (reusable). Для создания исполняемых файлов пакет должен иметь имя main . Все остальные пакеты не являются исполняемыми. При этом пакет main должен содержать функцию main , которая является входной точкой в приложение.

Импорт пакетов

Если уже есть готовые пакеты с нужной нам функциональностью, которую мы хотим использовать, то для их использования мы можем их импортировать в программу с помощью оператора import . Например, в примере выше задействуется функциональность вывода сообщения на консоль с помощью функции Println, которая определена в пакете fmt . Соответственно чтобы использовать эту функцию, необходимо импортировать пакет fmt:

3. Импорт виртуальных моделей в программу


import «fmt»

Нередко программы подключают сразу несколько внешних пакетов. В этом случае можно последовательно импортировать каждый пакет:

package main import «fmt» import «math» func main() < fmt.Println(math.Sqrt(16)) // 4 >

В данном случае подключается встроенный пакет math, который содержит функцию Sqrt() , возвращающую квадратный корень числа.

Либо чтобы сократить определение импорта пакетов можно заключить все пакеты в скобки:

Читайте также:
Программа или устройство для перехвата и анализа сетевого трафика это

package main import ( «fmt» «math» ) func main()

Подобным образом мы можем импортирвать как встроенные пакеты, так и свои собственные. Полный список встроенных пакетов в Go можно найти по адресу https://golang.org/pkg/.

Пакет из нескольких файлов

Один пакет может состоять из нескольких файлов. Например, определим в папке два файла:

Multiple files in Go build

В файле factorial.go определим функцию для подсчета факториала:

package main func factorial(n int) int < var result = 1 for i:=1; i return result >

Импортирование и экспортирование

Импортировать открытые символы в приложение или экспортировать функции из библиотеки DLL можно двумя способами:

  • с помощью файла определения модуля (DEF) при сборке библиотеки DLL;
  • с помощью ключевых слов __declspec(dllimport) или __declspec(dllexport) в определении функции в основном приложении.

Использование файла DEF

Файл определения модуля (DEF) — это текстовый файл, содержащий один или несколько операторов модуля, описывающих различные атрибуты библиотеки DLL. Если вы не используете ключевое слово __declspec(dllimport) или __declspec(dllexport) для экспорта функций библиотеки DLL, то для библиотеки DLL требуется DEF-файл.

Импорт в программу

Использование ключевого слова __declspec

Чтобы код компилировался правильно, использовать ключевое слово __declspec(dllimport) необязательно, но оно позволяет компилятору создавать более качественный код. Происходит это потому, что компилятор может определить, существует ли функция в библиотеке DLL или нет, и создать код без косвенного обращения, которое обычно присутствует в вызове функции, происходящем через границу библиотеки DLL. Однако для импорта переменных, используемых в библиотеке DLL, необходимо применять __declspec(dllimport) .

При наличии надлежащего раздела EXPORTS в файле DEF ключевое слово __declspec(dllexport) не требуется. Ключевое слово __declspec(dllexport) было добавлено для упрощения экспорта функций из EXE- или DLL-файла без использования файла DEF.

Формат переносимых исполняемых файлов Win32 предназначен для сведения к минимуму числа страниц для фиксации импорта. Для этого все адреса импорта для любой программы помещаются в одном месте, которое называется таблицей адресов импорта. Это позволяет загрузчику при обращении к импортируемым функциям изменять только одну или две страницы.

Читайте также:
Что такое программа abs

Выберите действие

  • Импорт в приложение
  • Экспорт из библиотеки DLL

Источник: learn.microsoft.com

Реализация импорта

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru