Обработка Внешних Приложений
ObjectARX-приложения могут загружать и разгружать другие ObjectARX-приложения и получать, список которого внешние приложения в настоящее время загружены, также, как программы AutoLISP могут (использование arxloaded). Следующий запрос загружается, программа вызвала myapp:
if (acedArxLoad ("myapp") != RTERROR) {
// Use acedInvoke() to call functions in "myapp".
}
Когда ваша программа закончена с myapp, это может разгрузить это, вызывая
acedArxUnload("myapp");
Функция acedArxLoaded() может использоваться, чтобы получить имена всех в настоящее время загруженных приложений, как в следующем коде:
struct resbuf *rb1, *rb2;
for (rb2 = rb1 = acedArxLoaded(); rb2 != NULL; rb2 = rb2->rbnext) {
if (rb2->restype == RTSTR)
acutPrintf("%s\n", rb2->resval.rstring);
}
acutRelRb(rb1);
Вы можете вызывать функции acedArxLoaded () и acedArxUnload () в конъюнкции друг с другом. Следующий пример разгружает все приложения кроме текущего:
struct resbuf *rb1, *rb2;
for (rb2 = rb1 = acedArxLoaded(); rb2 != NULL; rb2 = rb2->rbnext) {
if (strcmp(ads_appname, rb2->resval.rstring) != 0)
acedArxUnload(rb2->resval.rstring);
}
acutRelRb(rb1);