D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / С-функции / _CP_load

_CP_load

Предварительная загрузка подпрограмм FlashBASIC

int _CP_load(int* number, CPSTR* name)

Дополнительная функция для предварительной загрузки подпрограмм FlashBASIC до того, как они потребуются.

Параметр "number" должен быть указателем на целое число. При загрузке новой подпрограммы этот адрес должен содержать "-1". После успешной загрузки этот адрес содержит индекс, который должен быть передан последующим вызовам "_CP_call" этой же самой подпрограммы. Этот индекс позволяет системе переходить прямо к коду подпрограммы без просмотра имени в главном словаре.

Параметр "name" должен представлять собой указатель CPSTR*, указывающий на имя подпрограммы.

Вызываемая подпрограмма ДОЛЖНА быть уже скомпилирована компилятором FlashBASIC и каталогизирована в текущем главном словаре.

В случае ошибки эта функция возвращает "-1". Код ошибки содержится в "_CP_errno".

Код ошибки PE_LOAD_ERR означает, что система не смогла загрузить подпрограмму.

Подпрограмма должна быть каталогизирована и скомпилирована текущей версией компилятора FlashBASIC.

Примеры:

/* Вызов программы, написанной пользователем */
CPSTR * s = _CP_mkstr("hi");
int i = -1;
r = _CP_load(&i,s);
if (r < 0)
{
    _CP_logoff();
    exit(-1);
}
/* Тепер, когда подпрограмма загружена, ее можно  */
/* вызвать очень эффективным способом             */
for (j=1; j < 100; j++)   _CP_call(&i,s,0);