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

       

Обработка Ошибок от Вызванных Функций


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

Параметр результата - также NULL, если внешняя функция не возвращает результат.

Следующий типовой кодовый фрагмент проверяет возвращаемое значение внешней функции, которая, как ожидается,  возвратится один или большее количество значений результата:

struct resbuf *xfcnlist, *xresults;

// Build the invocation list, xfcnlist.

rc = acedInvoke(xfcnlist, &xresults);

if (rc != RTNORM) {

// Couldn't call the function—report this error (or even abort).

return BAD;

}

if (xresults == NULL) {

// Function was called but returned a bad result.

return BAD;

}

// Look at return results and process them.



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