Класс Versioning Пример
Новые параметры ACRX_DXF_DEFINE_MEMBERS определяют, из которой версии использовать, когда объект должен к файлу непосредственно. Когда рисунок сохранен, Вы можете определять которую DWG версию сохранить{*экономить*} к, вызывая dwgVersion () метод регистратора. Не необходимо что объектный файл непосредственно из как та же самая версия как регистратор. Предыдущие выпуски AutoCAD сделали точно, что, который вел к проблемам, которые являются лучшими описанными следующим примером.
В Выпуске 14, новый компонент данных (mTreatElementsAsHard) был добавлен к AcDbDictionary. В AutoCAD 2000, класс по имени AcDbDictionaryWithDefault был получен из AcDbDictionary. Когда
Используя acdbSaveAsR13 (), mTreatElementsAsHard элемент не выписан, так как Выпуск 13 не знает относительно элемента. Если рисунок, сохраненный acdbSavedAsR13 () затем открыт на Выпуск 14, образец AcDbDictionaryWithDefault становится полномочным, так как Выпускают 14, не включает этот класс. Когда AcDbObject становится полномочным, все данные ниже уровня AcDbObject сохраняются неповрежденными в соответствии с AutoCAD как “ полномочные данные ” и не изменены{*заменены*}. Когда рисунок сохранен Выпуском 14, данные разгружаются назад к DWG файлу, поскольку это читалось в. Результат - Выпуск 14 DWG файл, который имеет образец AcDbDictionaryWithDefault, но пропускает mTreatElementsAsHard данные. При считывании этого рисунка к AutoCAD 2000, AutoCAD (определенно, AcDbDictionary:: dwgInFields ()) ищет тот компонент данных, так как это признает регистратора, являющегося Выпуском 14 типа, который должен иметь mTreatElementsAsHard данные. Однако, данные - не, подарок{*настоящее*}, последовательность потерян, и рисунок коррумпирован.
Это не определенно к AcDbDictionaryWithDefault. Новые классы в AutoCAD 2000, уже представленном ObjectARX или это будет представлено третьими лицами, может страдать от этой проблемы, особенно, если один из их супер-классов изменил{*заменил*} данные.