EnglishРусский  

   Приложение

Реклама

Инсталлятор CreateInstall
Бесплатные и коммерческие инсталляторы

Команда import

Команда import позволяет подключить импортируемые функции из DLL. После ключевого слова import следует имя DLL-файла, из которого будут импортироваться функции, затем открывается блок с описаниями. В каждой строке блока должно быть описание импортируемой функции - имя типа возвращаемого значения (если есть), затем имя функции и в круглых скобках имена типов параметров через запятую. Можно определить новое имя функции, которое будет использоваться вместо импортируемого имени. Для этого после описания ставиться -> и новое имя функции. После импортирования, вызов DLL функции ничем не отличается от вызова функции написанной на языке Gentee.

import "kernel32.dll" 
{   
   uint CloseHandle( uint )
   uint CopyFileA( uint, uint, uint ) -> CopyFile
   uint CreateFileA( uint, uint, uint, uint, uint, uint, uint ) -> CreateFile
   uint CreateProcessA( uint, uint, uint, uint, uint, uint, uint, uint,
                        STARTUPINFO, PROCESS_INFORMATION ) -> CreateProcess
}

Если вы будете запускать Gentee программу из собственного EXE файла, то вы можете использовать функции из EXE модуля. Для этого, укажите имя DLL файла в виде пустой строки, а про передачу адресов импортируемых функций читайте в разделе Настройка и запуск Gentee.

Атрибуты

cdeclare

Означает, что импортируются __cdecl функции. По умолчанию считается, что импортируемые функции являются __stdcall функциями.

import "myfile.dll" <cdeclare>
{
   ...
}

link

В этому случае, dll файл будет включен в .ge, во время запуска запишется во временную директорию и оттуда уже будет загружен программой. По завершению работы он уничтожится. То есть, этот атрибут полезен, если вы не хотите распространять дополнительные dll файлы вместе с .ge, но не уверены, что они будут на машине пользователя. Желательно указывать полный путь к dll файлу.

import $"c:\mypath\myfile.dll" <link>
{
   ...
}

exe

Используйте этот атрибут если вы знаете только путь DLL относительно вашего приложения. Вот пример, когда my.dll будет подключаться из поддиректории Plugins где запущена программа.

import $"plugins\my.dll" <exe>
{
   ...
}

Редактировать