Они снабжены в двоичной форме только, без связанных заголовков.

API WhipView модуля состоит из единственной точки входа, которая имеет следующую сигнатуру:

AcGixBlockView* acgixAllocateWhipView ();

Эта функция явно объявлена внешней и используется в SimpleView исходном модуле AcGixSimpleViewManager. cpp. Не имеется никакого экспортируемого файла заголовка, который объявляет acgixAllocateWhipView ().

Чтобы многократно использовать этот элемент, Вы должны брать AcGixBlockView, столь же определенный и так много еще SimpleView комплекса, что необходимо. Быть Предупредите, однако, что AcGixBlockView довольно усложнен и использует многое из остальной части SimpleView. Выполнение наиболее легко сделано, если Вы оставляете SimpleView в по существу неизменном состоянии.

WhipView клиенты связываются непосредственно с AcGixWhipView. lib. WhipView требует AcDb. dll, heidi3.dll, dllong3.dll, и HDI файлы, снабженные в каталоге выпусков.

ViewAcDb

ViewAcDb - Многодокументная среда средство просмотра чертежного файла (MDI), которое использует SimpleView и WhipView для отображения видов DWG файлов.

ViewAcDb - по существу испытание, используют для AcDb. dll, AcGix. dll, и выполнение представления{*вида*}.

Основная операция средства просмотра

Следующее - основные шаги, чтобы установить вид (или виды) рисунка, сопровождаемого в соответствии с описанием графического выбора примитива.

Устанавливать вид

1 приложение ObjectDBX загружает DWG файл в образец AcDbDatabase.

2 приложение создает область просмотра и передает связанный AcGiViewport к AcGix.

НЕ нашли? Не то? Что вы ищете?

3 приложение сообщает AcGix инициализировать перегенеральный из определенной записи таблицы блоков или отдельного примитива в данный набор областей просмотра.

4 AcGix восстанавливает примитив (ы) во все активные области просмотра. По существу, каждый примитив открыт для чтения, его AcDbEntity:: worldDraw () вызван, и если состояние возвращения указывает, его AcDbEntity:: viewportDraw () перегрузка члена вызвана однажды для каждой активной области просмотра.

5 От любого из этих членов, каждый класс свободен получить объекты AcGiWorld/ViewportGeometry и объекты AcGiSubentityTraits, и делать, вызывает, чтобы послать геометрические графические и графические черты (атрибуты подобно цвету, linetype, шрифт) к ним. Эти объекты AcGi осуществлены в AcGix, который берет “входные” геометрические примитивы и черты и обрабатывает их, сокращая их к примитивам прошел в к образцу AcGixVectorTaker, связанного с каждой активной областью просмотра.

6 vectortaker берет входные пакеты сообщения (или функция вызывает) и преобразовывает их в, вызывает к основной системе графики.

Выбор графики примитива

AcGixVectorTaker::message() метод поставляет вашему приложению информацией, требуемой, чтобы осуществить выбор примитива (выбор). Фактическое выполнение выбора зависит от того, как Вы осуществляете ваш дисплей.

Например, WhipView исполняет выборы против его 2-ого дисплейного файла.

Предложения конфигурации

ObjectDBX клиентское приложение может выбирать один из следующих методов отобразить содержание DWG file:

§  Приспосабливают снабженный SimpleView библиотечный источник к использованию ведущими приложениями, и используют все три компонента. Изучение и приспосабливается, любой код от ViewAcDb производит выборку приложения как необходимо. Это - вероятно лучший способ статься знакомым с использованием AcGix и SimpleView AcGix выполнение платформы. Однако, Вы свободны изменить SimpleView источник как желательно.

§  Формируют модуль, чтобы управлять желательной графической системой через AcGix библиотеку. Это позволяет многое из существующей логики разработки многократно использоваться и все еще предлагает значительную гибкость в фактической сопроводительной графике и выполнении. Это вовлекло бы использование AcGix модуля, но записи выполнения AcGiViewport и AcGixVectorTaker на пустом месте, в действительности замена SimpleView и-или WhipView библиотек полностью.

§  Используют WhipView подсистему, чтобы сохранить элементы SimpleView, необходимого, чтобы поддержать определение AcGixBlockView. Это включает снабженную комбинацию WHIP! И HEIDI DLLs. Прямое использование WHIP! И HEIDI компоненты не поддержаны в этом выпуске.

§  Записывают, полное заказное выполнение AcGi связывает с помощью интерфейса и не использует никакой из снабженного AcGix, SimpleView, или WhipView компонентов. Вы можете достигать максимального выполнения этот путь с максимальным количеством работы развития.

Загрузка по требованию

Требование, загружающее механизм - по существу тот же самый для приложения ObjectDBX, поскольку это - для ObjectARX-приложения. Единственное различие находится в том, где информация найдена в системном реестре. Для требования, загружающего ObjectARX-приложения, AutoCAD смотрит в системном реестре системы под следующим:

HKEY_LOCAL_MACHINE

Software

Autodesk

AutoCAD

R15.0

ACAD-xxxxxxx-xxxxxxxx

Applications

xxxxxxx-xxxxxxxx является номером, уникальным к каждой инсталляции.

Для требования загружающего приложения DBX, ObjectDBX будет смотреть в системном реестре системы под следующим:

HKEY_LOCAL_MACHINE

Software

Autodesk

ObjectDBX

R15.0

Applications

Они - жестко закодированные ключи и - тот же самый для любого приложения на любой машине. Ваша прикладная информация идет при входе Приложений.

Установка ObjectDBX Библиотек

ОБРАТИТЕ ВНИМАНИЕ, что следующее обсуждение принимает основное понимание технологии инсталлятора, определенно InstallShield 3.0 и 5.0.

AutoCAD ObjectDBX общедоступные библиотеки включает группу файлов, которые были разработаны с намерением что они использоваться множественными приложениями. Эта характеристика требует, чтобы они были помещены в общее местоположение, доступное для множественных приложений на автоматизированном рабочем месте пользователя. Autodesk выбрал рекомендуемое выполнение Microsoft установки файлов этого характера в каталоге Common Files. Так как возможно, что ваш инсталлятор может совместно использовать эти файлы с другими приложениями, Вы должны следовать некоторый простой, все же критический, руководящие принципы при установке файлов.

Использование COMMONFILES

Не примите имена диска и пути при определении, где установить Общие файлы Autodesk. InstallShield константа системы COMMONFILES возвратит имя пути, которое указывает на кое-что подобно c:\Program Files\Common Files. Вы должны тогда добавить Autodesk Общедоступное имя. Это может быть сделано в a. rul сценарий со следующей линией:

szSharedPath = COMMONFILES ^ "Autodesk Shared";

С всеми файлами, которые Вы перераспределяете от каталога ObjectDBX\release вашей инсталляции SDK, нужно обращаться как Общие файлы Autodesk для инсталляционных целей.

Установка версии как SHAREDFILE

Весь DLLS Autodesk обеспечивает, содержат ресурс версии. При установке этих файлов Вы должны определить, что они, быть модифицировано только, если версия равна или большая чем те которые могут существовать на машине пользователя. InstallShield обеспечивает пару способов делать это использование комбинация ФЛАЖКОВ COMP_UPDATE_VERSION и COMP_UPDATE_SAME.

Кроме того Вы должны также отметить эти файлы с флажком SHAREDFILE при установке. Это будет гарантировать, что Вы поддерживаете подсчет ссылки к другим прикладным инсталляторам, которые могут устанавливать и использование этих библиотек и файлов.

Следующий сценарий InstallShield - пример, который устанавливает acge15.dll использование версия и общедоступный механизм файла.

TARGETDIR = COMMONFILES ^ "Autodesk Shared";

nReturn = XCopyFile (

"acge15.dll", "acge15.dll",

COMP_UPDATE_SAME |

COMP_UPDATE_VERSION |

SHAREDFILE);

if (nReturn < 0 ) then

// Report failure

endif;

Гарантируйте, что Файлы Находятся на Пути

Для вашего приложения, чтобы найти эти библиотеки, Вы должны гарантировать, что путь системы пользователя содержит ссылку к COMMONFILES ^ " Autodesk Общедоступный ". Имеется множество способов делать эту работу, в зависимости от операционной системы. Они описаны ниже.

Для Всех Операционных систем

Модифицируйте путь к приложению для каждой операционной системе. Используя сценарий InstallShield, это может быть сделано следующим способом. (SzAppPath принят, чтобы включить общедоступный путь и любые другие пути, требуемые вашим приложением.)

szExe = "your. exe";

szProdKey = "Software\\Microsoft\\Windows\\";

szProdKey = szProdKey + "CurrentVersion\\App Paths\\" + szExe;

RegDBSetKeyValueEx(szProdKey, "Path", REGDB_STRING, szAppPath, -1);

Windows NT

Вы должны также модифицировать Путь Системы в системном реестре. Это может быть найдено под HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment. Значение Пути, сохраненное там должно измениться, чтобы включить ваш путь. Обратите внимание, что эта строка - тип значения REGDB_STRING_EXPAND.

Windows 95 и Windows 98

Вы должны модифицировать AUTOEXEC. BAT файл пользователя, чтобы включить “aliased” (или короткий) имя пути, потому что переменная ПУТИ не будет обрабатывать пробелы. В то время как пути к приложению должны удовлетворить, строго рекомендуется, чтобы Вы модифицировали пользователя AUTOEXEC. BAT из-за известных проблем с автоматизацией (отнесите к Microsoft KnowledgeBase статью Q148375).

Гарантируйте умные модификации путей

При модифицировании пользователя AUTOEXEC. BAT пожалуйста, быть прилежный относительно изменения входа пути, если вход пути - уже там. Что должно быть предотвращено, только изменяет ПУТЬ без отношения к любому из этих условий:

§  путь - уже там.

§  Вы воздействуют на другие назначения пути в пакетном файле.

При модифицировании значения ПУТИ, независимо от того, который операционная система Вы имеете дело, ваш инсталлятор должен запросить пользователя перезагружаться так, чтобы изменение пути было должным образом зарегистрировано после того, как инсталляция полна.

Autodesk обеспечивает сценарий InstallShield ниже как неполный пример сильного модифицирования пути:

Из за большого объема этот материал размещен на нескольких страницах:
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