版本号可以存储为类的数据成员,并且可以作为每个对象的第一个数据成员归档。由于此数据是持久性的,并且是读取的第一项,因此可以在读取任何其他数据之前对其进行检查以确定对象的版本。 当使用数字来区分对象的版本时,父 ObjectARX 应用程序必须能够处理对象的不兼容版本的这两种情况:
具有数据成员版本号的对象版本控制在 ObjectARX SDK 中的\samples\entity\polysamp\poly.cpp中的以下代码片段中进行了说明。 // Object Version #define VERSION 1 ... Acad::ErrorStatus AsdkPoly::dwgInFields(AcDbDwgFiler* filer) { ... // Object Version - must always be the first item Adesk::Int16 version; filer->readItem(&version); if (version > VERSION) return Acad::eMakeMeProxy; ... } Acad::ErrorStatus AsdkPoly::dwgOutFields(AcDbDwgFiler* filer) const { ... // Object Version - must always be the first item Adesk::Int16 version = VERSION; filer->writeItem(version); ... } Acad::ErrorStatus AsdkPoly::dxfInFields(AcDbDxfFiler* filer) { ... // Object Version case AcDb::kDxfInt16: Adesk::Int16 version; version = rb.resval.rint; if (version > VERSION) return Acad::eMakeMeProxy; break; ... } Acad::ErrorStatus AsdkPoly::dxfOutFields(AcDbDxfFiler* filer) const { ... // Object Version Adesk::Int16 version = VERSION; filer->writeItem(AcDb::kDxfInt16, version); ... } |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:48
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.