ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Возвращаемые значения против результатов функций


Несколько ObjectARX глобальные функции имеют пустой тип возвращения, и некоторые непосредственно возвращают их результатов, но больше всего имеют int, напечатают и возвращают целочисленный код состояния, который указывает, потерпел ли функциональный запрос, за которым следуют или неудачу.

Код RTNORM указывает, что функция преуспела; другие коды указывают неудачу или специальные условия. Библиотечные функции, которые возвращают код состояния, передают их фактических результатов (если любой) поддерживает к вызывающей программе через параметр, который пропускает ссылка.

ПРИМЕЧАНИЕ Не путает параметры результата библиотечной функции и значения с его возвращаемым значением. Функция возвращает целочисленный код состояния. Это размещает его результатов в параметры, прошел (ссылкой) назад к функции, которая вызывает это.

Рассмотрите следующие смоделированные объявления для нескольких типичных функций ObjectARX:

int acdbEntNext(ads_name ent, ads_name result);

int acedOsnap(ads_point pt, char *mode, ads_point result);

int acedGetInt(char *prompt, int *result);

Приложение могло вызывать эти функции со следующими инструкциями C++:

stat = acdbEntNext(ent, entres);

stat = acedOsnap(pt, mode, ptres);

stat = acedGetInt(prompt, &intres);

После того, как каждая функция вызвана, значение stat переменной указывает или успех (stat == RTNORM) или неудачу (stat == RTERROR или другой код ошибки, типа RTCAN для отмены). Последний параметр в каждом списке - параметр результата, который нужно пропустить ссылкой. Если успешно, acdbEntNext() возвращает имя примитива в его entres параметре, acedOsnap() возвращает точку в ptres, и acedGetInt() возвращается,  целое число приводит к intres. (Типы ads_name и ads_point - типы массива, который является, почему entres и ptres параметры явно не появляются как указатели.)

ОБРАТИТЕ ВНИМАНИЕ В ObjectARX глобальных функциональных объявлениях параметры результата всегда следуют за параметрами, которые передают входные значения к функции.



Содержание раздела