Структура FoxInfo используется для связи с именами функций и описаниями параметров между Visual FoxPro и вашей библиотекой FLL.
Приведенный ниже код иллюстрирует синтаксис для структуры FoxInfo:
Скопировать
код | |
|---|---|
FoxInfo arrayname[ ] = {
{funcName1, FPFI function1, parmCount1, parmTypes1}
{funcName2, FPFI function2, parmCount2, parmTypes2}
. . .
{funcNameN, FPFI functionN, parmCountN, parmTypesN}
}; | |
В приведенной ниже таблице описываются параметры в этой структуре.
| Параметр | Описание | ||
|---|---|---|---|
|
arrayname |
указывает переменную типа FoxInfo.
|
||
|
funcName |
Содержаит имя, которое использует пользовать Visual FoxPro для вызова вашей функции. |
||
|
function |
Указывает адрес вашей процедуры в языке C. Это имя (регистро-чувствительное) в точности повторяет то, что вы определили для вашей функции. |
||
|
parmCount |
Указывает число параметров, описанных в строке parmTypes string или одно из перечисленных ниже значений флажков. :
|
||
|
parmTypes |
Описывает тип данных каждого параметра. Ниже перечислены допустимые значения для parmTypes.
|
Замечание |
|---|
|
Включите значение типа для каждого параметра, посылаемого библиотеке. Для указания того, что параметр является необязательным, предварите его символом точки (.). Пропущены могут быть только завершающие параметры. |
Например, предположим, что вы создали функцию, которая может принимать в виде параметра и символьную строку, и число. Когда вы будете определять parmType, используйте "CN".
Приведенный ниже пример структуры FoxInfo определяет библиотеку с одной
функцией, которая внутренне называется dates, а вызывается извне ,
как DATES. Структура принимает один параметр типа Character:
Скопировать
код | |
|---|---|
FoxInfo myFoxInfo[] = {
{ "DATES", (FPFI) dates, 1, "C" }
}; | |
После того, как вы скомпилируете свою FLL библиотеку с этой структуров FoxInfo и загрузите ее в Visual FoxPro с помощью команды SET LIBRARY, вы можете вызвать эту функцию в Visual FoxPro приведенной ниже строкой кода:
Скопировать
код | |
|---|---|
=DATES("01/01/95") | |
Замечание