Функция ВЫЗОВ
Функция ВЫЗОВ позволяет вызывать функции из внешних динамически загружаемых библиотек (DLL).
ФУНКЦИЯ ТИП_ЛОГИКА: ВЫЗОВ(ТИП_СТРОКА: имя_библиотеки, имя_функции, строка)
Параметры
- имя_библиотеки
- Имя DLL.
- имя_функции
- Имя функции в указанной библиотеке.
- строка
- строка, через которую осуществляется обмен с внешней функцией.
Возвращаемое значение
ДА – если найдены указанные библиотека и функция и НЕТ – в противном случае.
Вызываемая функция должна иметь следующий интерфейс:
char* WINAPI <имя функции> (HWND hWindow, char* InputStr) или в Паскале: function <имя функции>(hWindow: HWND; InputStr: PChar): PChar; stdcall;
Значение переменной строка передается в функцию в качестве параметра InputStr, а после выполнения функции этой переменной присваивается возвращенное функцией значение.
Дополнительно в функцию передается дескриптор окна Инфо-Бухгалтера (главного или верхнего диалога).
Пример использования
// В Инфо-Бухгалтере: стр = "Строка на вход" ЕСЛИ ВЫЗОВ ("calltest.dll", "TestMsgBox", стр) ТО СООБЩЕНИЕ (стр) ИНАЧЕ СООБЩЕНИЕ ("Ошибка: библиотека или функция не найдена!") КОНЕЦ_ЕСЛИ // В DLL -------- calltest.h extern "C" { char* WINAPI TestMsgBox (HWND handle, char* message); } -------- calltest.cpp char* WINAPI TestMsgBox(HWND handle, char* message) { ::MessageBox (handle,message,"Привет от DLL",MB_OK | MB_ICONINFORMATION); return "Строка на выход"; }