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