Регистрация Приложения
Прикладные названия сохранены с расширенными данными каждого примитива, который использует их и в APPID таблице. Приложение должно регистрировать имя или называть, это использует. В ObjectARX, это сделано запросом к acdbRegApp (). AcdbRegApp () функция определяет строку, чтобы использовать как прикладное имя. Это возвращает RTNORM, если это может успешно добавлять имя к APPID; иначе, это возвращает RTERROR. Результат RTERROR обычно указывает, что имя - уже в таблице идентификаторов. Это - не фактическое состояние ошибки, а обычно ожидаемое возвращаемое значение, потому что прикладное имя должно быть зарегистрировано только однажды в рисунок.
Чтобы регистрировать себя, приложение должно сначала проверить, чтобы его имя было уже не в APPID таблице, потому что acdbRegApp () должен быть вызван только однажды в рисунок. Если имя не там, приложение должно регистрировать это; иначе, это может идти вперед и использовать данные.
Следующий типовой кодовый фрагмент показывает типичному использованию acdbRegApp ().
#define APPNAME "Local_Operation_App_3-2"
struct resbuf *rbp;
static char *local_appname = APPNAME;
// The static declaration prevents a copy being made of the string
// every time it’s referenced.
.
.
.
if ((rbp = acdbTblSearch("APPID", local_appname, 0)) == NULL) {
if (acdbRegApp(APPNAME) != RTNORM) { // Some other
// problem
acutPrintf("Can’t register XDATA for %s.",
local_appname);
return BAD;
}
} else {
acutRelRb(rbp);
}