Структура FoxInfo используется для связи с именами функций и описаниями параметров между Visual FoxPro и вашей библиотекой FLL.

Приведенный ниже код иллюстрирует синтаксис для структуры FoxInfo:

 CopyCode imageСкопировать код
FoxInfo arrayname[ ] = {
   {funcName1, FPFI function1, parmCount1, parmTypes1}
   {funcName2, FPFI function2, parmCount2, parmTypes2}
      . . .
   {funcNameN, FPFI functionN, parmCountN, parmTypesN}
};

В приведенной ниже таблице описываются параметры в этой структуре.

 
Параметр Описание

arrayname

указывает переменную типа FoxInfo.

NoteЗамечание

Вы можете включить в этот массив несколько структур FoxInfo.

funcName

Содержаит имя, которое использует пользовать Visual FoxPro для вызова вашей функции.

function

Указывает адрес вашей процедуры в языке C. Это имя (регистро-чувствительное) в точности повторяет то, что вы определили для вашей функции.

parmCount

Указывает число параметров, описанных в строке parmTypes string или одно из перечисленных ниже значений флажков. :

  • INTERNAL

    определяет, что функция не может быть вызвана непосредственно из Visual FoxPro.

  • CALLONLOAD

    указывает, что процедура вызывается при загрузке библиотеки. CALLONLOAD не может вызывать никакую процедуру, которая возвращает результат в Visual FoxPro.

  • CALLONUNLOAD

    указывает, что процедура вызывается при выгрузке библиотеки или когда выдана команда Visual FoxPro QUIT. CALLONUNLOAD не может вызывать никакую процедуру, которая возвращает результат в Visual FoxPro.

parmTypes

Описывает тип данных каждого параметра.

Ниже перечислены допустимые значения для parmTypes.

  • " "

    нет параметра.

  • "?"

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

  • "C"

    определяет тип параметра, как Character.

  • "D"

    определяет тип параметра, как Date.

  • "I"

    определяет тип параметра, как Integer.

  • "L"

    определяет тип параметра, как Logical.

  • "N"

    определяет тип параметра, как Numeric.

  • "R"

    ссылка.

  • "T"

    определяет тип параметра, как  DateTime.

  • "Y"

    определяет тип параметра, как Currency

  • "O"

    определяет тип параметра, как Object

NoteЗамечание

Включите значение типа для каждого параметра, посылаемого библиотеке. Для указания того, что параметр является необязательным, предварите его символом точки (.). Пропущены могут быть только завершающие параметры.

Например, предположим, что вы создали функцию, которая может принимать в виде параметра и символьную строку, и число. Когда вы будете определять parmType, используйте "CN".

Приведенный ниже пример структуры FoxInfo определяет библиотеку с одной функцией, которая внутренне называется dates, а вызывается извне , как DATES. Структура принимает один параметр типа Character:

 CopyCode imageСкопировать код
FoxInfo myFoxInfo[] = {
   { "DATES", (FPFI) dates, 1, "C" }
};

После того, как вы скомпилируете свою FLL библиотеку с этой структуров FoxInfo и загрузите ее в Visual FoxPro с помощью команды SET LIBRARY, вы можете вызвать эту функцию в Visual FoxPro приведенной ниже строкой кода:

 CopyCode imageСкопировать код
=DATES("01/01/95")

Expand imageСмотрите также