版本号可以存储为类的数据成员,并且可以作为每个对象的第一个数据成员归档。由于此数据是持久性的,并且是读取的第一项,因此可以在读取任何其他数据之前对其进行检查以确定对象的版本。 当使用数字来区分对象的版本时,父 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-12-3 22:07
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.