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




Обработка Внешних Приложений


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);




Содержание  Назад  Вперед