Разгрузка ObjectARX Приложения
Вы можете разгрузить приложение ObjectARX с любым из следующих методов (если это разблокировано):
- Заставят приложение разгрузить запрос от другого приложения ObjectARX, используя AcRxDynamicLinker:: unloadModule (). Используют диалоговое окно APPLOAD, определенное в премии AutoCAD, программируют loadapp. arx. Этот файл определяет интерфейс пользователя для Автошепелявящегося arxload и функций arxunload. Используют функцию arxunload от Alisp. Используют acedArxUnload () функция от ObjectARX. Вводят команду ARX в командную строку AutoCAD и используют опцию Unload.
Разблокировка приложения
По умолчанию, приложения блокированы и не могут быть разгружены. Чтобы быть классифицирован как “незагружаемое” приложение, приложение должно гарантировать, что AutoCAD и другие приложения больше не обращаются{*относятся*} к любым объектам{*целям*}, или структурирует приложение, определил. Прежде, чем Вы делаете приложение незагружаемым, быть очень осторожным, что никакие клиентские приложения не содержат активные указатели на любые объекты{*цели*} в вашем адресном пространстве. Для списка операций очистки приложение должно исполнить, чтобы быть незагружаемым, см. “ Подготовка к Разгрузке ” на странице 38.
Если Вы хотите делать ваше приложение незагружаемым, Вы должны сохранить значение pkt параметра, посланного с AcRx:: kInitAppMsg. Pkt параметр будет использоваться unlockApplication () на. По умолчанию, прикладная программа блокирована. Если Вы разблокируете приложение, это может быть разгружено.
Используйте следующий две функции, чтобы блокировать и разблокировать приложение:
bool
AcRxDynamicLinker::lockApplication(void* pkt) const;
bool
AcRxDynamicLinker::unlockApplication(void* pkt) const;
Следующие функциональные проверки, действительно ли приложение блокировано:
bool
AcRxDynamicLinker::isApplicationLocked(const char* name) const;
Аналогичные глобальные функции также обеспечиваются:
bool
acrxLockApplication(void* pkt);
bool
acrxUnlockApplication(void* pkt);
bool
acrxApplicationIsLocked(const char* modulename);
Загрузка по запросу
Загрузка Запроса - особенность AutoCAD, который автоматически пытается загружать приложение ObjectARX, которое - не резидент в AutoCAD. Приложения ObjectARX могут быть предназначены для загрузки в соответствии с AutoCAD под одним или большим количеством следующих обстоятельств:
· когда читается чертежный файл, который содержит заказные объекты, созданные отсутствующим приложением;
· когда пользователь или другое приложение выпускает одну из команд отсутствующего приложения;
· когда AutoCAD начат;
ОБРАТИТЕ ВНИМАНИЕ На приложения, которые осуществляют загрузку запроса на запуске AutoCAD, будет загружен прежде, чем перечисляли в acad. rx.
AutoDesk рекомендует разработать приложения ObjectARX, которые воспользуются преимуществом загружающей запроса особенности AutoCAD потому что загрузка запроса, обеспечивая следующие выгоды:
· Ограничивает создание полномочных объектов (см. главу 14, “ Полномочные Объекты”)
· Обеспечивает большую гибкость для загрузки приложений ObjectARX
· Сохраняет память, загружая приложения только, когда их функциональные возможности требуются
Для приложения, чтобы быть доступный для загрузки запроса, специфическая для приложения информация должна присутствовать в системном реестре системы Windows. Кроме того, Приложения ObjectARX с больше чем один DLL могут нуждаться в модуле “контроллера”, который является ответственным за загрузку всех других компонентов
Приложение. Наконец, DEMANDLOAD системная переменная должна быть установлена в соответствующее значение для загрузки запроса.
ОБРАТИТЕ ВНИМАНИЕ, что приложение ObjectARX может быть запрос, загруженный от пути на местной машине, или, используя адрес Internet.
AutoCAD, Системный реестр Системы Windows, и Приложения ObjectArx
AutoCAD использует системный реестр системы Windows, чтобы поддержать широкий диапазон прикладной информации, включая информацию, которая уникально идентифицирует различный AutoCAD, выпуск версии языка и программы (типа Карты AutoCAD ®) который может быть установлен на любом данном компьютере. Информация системного реестра, которая идентифицирует различные версии AutoCAD, имеет специфическое значение для ObjectARX разработчиков. Инсталляционная программа для приложения ObjectARX должна присоединить информацию относительно того Приложения ObjectArx с информацией относительно версии(й) AutoCAD, с которым предполагается работать.
Программа инсталляции AutoCAD создает уникальную клавишу{*ключ*} временной метки в системном реестре немедленно ниже цифровой клавиши выпуска (также как добавление той же самой инсталляции ID к выполнимой программе непосредственно). Эта клавиша{*ключ*} гарантирует, что различные версии AutoCAD от того же самого выпуска будут способны заполнить их собственные разделы системного реестра. В пределах этой клавиши{*ключа*}, значения сохранены для местоположения файлов AutoCAD, версии языка, и названия{*имени*} изделия{*программы*}, как иллюстрировано в этом примере:
\\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\
ACAD-1:409\
...
AcadLocation:REG_SZ:f:\ACAD2000
Language:REG_SZ:English
ProductName:REG_SZ:AutoCAD Map R15.0
...
Инсталляционная программа для Приложения ObjectArx должна быть способна расположить соответствующий выпуску AutoCAD клавишу{*ключ*}, также как соответствующий язык и значения программы. Клавиша{*ключ*} временной метки также используется, чтобы идентифицировать версию AutoCAD, который в настоящее время загружен (или версия, которая была наиболее недавно загружена). Эта идентификация необходима, потому что “текущая” версия AutoCAD сбрасывает информацию в глобальной переменной HKEY_CLASSES_ROOT раздел системного реестра для его собственного использования, когда это загружено.
Значение CurVer в разделе клавиши{*ключа*} выпуска системного реестра используется, чтобы идентифицировать текущую версию, например:
\\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\
...
CurVer:REG_SZ:ACAD-1:409
Когда AutoCAD пытается требовать загрузку Приложение ObjectArx, это смотрит в разделе системного реестра, который принадлежит самому последнему выпуску AutoCAD для информации относительно Приложения ObjectArx. Если это не находит ObjectARX информацию там, это проверяет{*отмечает*} раздел для предыдущего выпуска AutoCAD, и так далее в обратном заказе{*порядке*}, пока информация не найдена или информация выпуска AutoCAD истощена.
Модификация Системного реестра при Инсталляции Приложения ObjectArx
AutoCAD использует Windows NT (или Windows 95) системный реестр, чтобы расположить Приложения ObjectArx для загрузки запроса. Часть раздела AutoCAD системного реестра используется для информации относительно местоположения информации системного реестра ObjectARX appli-cations'.
Инсталляционная программа для Приложения ObjectArx должна создать определенные клавиши{*ключи*} и значения в системном реестре, которые требуются для загрузки запроса. Некоторые из требуемых клавиш{*ключей*} и значений должны быть созданы в разделе AutoCAD системного реестра, и другие должны быть созданы в разделе приложения ObjectARX системного реестра.
Если Приложение ObjectArx разработано{*предназначено*}, чтобы работать с больше чем одной версией AutoCAD (то есть различных версий языка или связанных изделий{*программ*}, типа Карты AutoCAD), инсталляционная программа должна прибавить соответствующую информацию к разделу системного реестра для каждой версии AutoCAD.
Инсталляционный процесс для Приложений ObjectArx должен поэтому включить:
· Проверка, что разделы системного реестра для соответствующей версии AutoCAD существуют. (Если раздел AutoCAD системного реестра не существует, пользователь должен быть предупрежден, что совместимая версия AutoCAD не была установлена, и инсталляция должна быть прервана.)
· Создание определенного набора клавиш{*ключей*} и значений для приложения в пределах раздела (ов) системного реестра для соответствующей версии (й) AutoCAD.
· Создание главной клавиши{*ключа*} для приложения непосредственно, и совокупности той клавиши{*ключа*} с другим набором определенных клавиш{*ключей*} и значений. См. \objectarx\samples\polysamp\demandload каталог ObjectARX
SDK для информации относительно того, как системный системный реестр изменяется для запроса, загружающего типовую программу polysamp.
Следующий два раздела описывают, как инсталляционная программа приложения должна создать системную информацию системного реестра, требуемую для загрузки запроса. Типовая инсталляционная программа включена в \objectarx\utils каталог ObjectARX SDK.
Создание Дополнительных клавиш AutoCAD и Значений
Программа инсталляции приложения ObjectARX должна быть разработана{*предназначена*}, чтобы управлять набором клавиш{*ключей*} и значений для того приложения в пределах раздела системного системного реестра для каждой версии AutoCAD, с которым предназначено работать. Следующий пример показывает размещению клавиш{*ключей*} и значений в разделе системного реестра, который должен быть создан и поддерживаться для приложения:
\\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\releaseNum\
ACAD-1:LocaleID\
Applications\
ApplicationName\
LoadCtrls:REG_DWORD:acrxAppLoadReason
RegPath:REG_SZ:RegistryPathWhereLoaderIsSpecified
ReleaseNum и клавиши{*ключи*} ACAD-1:LocaleID созданы программой инсталляции AutoCAD. Клавиша{*ключ*} ApplicationName должна быть логическое название{*имя*} приложения, которое используется внутренне в соответствии с AutoCAD, чтобы идентифицировать программу. Значение acrxAppLoadReason определяет условия, при которых приложение будет загружено, используя один или более логический ORS следующих шестнадцатеричных значений, перечисленных с их связанными значениями:
0x01 Загружают приложение после обнаружения полномочного объекта{*цели*}.
0x02 Загружают приложение после запуска AutoCAD.
0x04 Загружают приложение на обращение команды.
0x08 Загружают приложение по запросу пользователем или другим приложением.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |


