Thanks for your answering. Then how can I derive from the AcDbNurbSurface? I'm using ObjectArx 2021, and I created a DBX project using the arx wizard, and derived a custom object from AcDbEntity using the "ArxWizCustomObject" wizard in VS 2019 (because there is no AcDbNurbSurface, nor AcDbSurface in the opition of the wizard). Then I modified the codes generated manually to inherit AcDbNurbSurface.
#pragma comment(lib, "acgeomEnt.lib") is used to link acgeomEnt.lib. And I got the following link error
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::createInterferenceObjects(class AcArray<class AcDbEntity *,class AcArrayMemCopyReallocator<class AcDbEntity *> > &,class AcDbEntity *,unsigned int)const " (?createInterferenceObjects@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@AEAV?$AcArray@PEAVAcDbEntity@@V?$AcArrayMemCopyReallocator@PEAVAcDbEntity@@@@@@PEAVAcDbEntity@@I@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::booleanUnion(class AcDbSurface const *,class AcDbSurface * &)" (?booleanUnion@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEBV1@AEAPEAV1@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::booleanSubtract(class AcDbSurface const *,class AcDbSurface * &)" (?booleanSubtract@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEBV1@AEAPEAV1@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::booleanSubtract(class AcDb3dSolid const *,class AcDbSurface * &)" (?booleanSubtract@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEBVAcDb3dSolid@@AEAPEAV1@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::booleanIntersect(class AcDbSurface const *,class AcArray<class AcDbEntity *,class AcArrayMemCopyReallocator<class AcDbEntity *> > &)" (?booleanIntersect@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEBV1@AEAV?$AcArray@PEAVAcDbEntity@@V?$AcArrayMemCopyReallocator@PEAVAcDbEntity@@@@@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::booleanIntersect(class AcDb3dSolid const *,class AcArray<class AcDbEntity *,class AcArrayMemCopyReallocator<class AcDbEntity *> > &)" (?booleanIntersect@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEBVAcDb3dSolid@@AEAV?$AcArray@PEAVAcDbEntity@@V?$AcArrayMemCopyReallocator@PEAVAcDbEntity@@@@@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::imprintEntity(class AcDbEntity const *)" (?imprintEntity@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEBVAcDbEntity@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::createSectionObjects(class AcGePlane const &,class AcArray<class AcDbEntity *,class AcArrayMemCopyReallocator<class AcDbEntity *> > &)const " (?createSectionObjects@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@AEBVAcGePlane@@AEAV?$AcArray@PEAVAcDbEntity@@V?$AcArrayMemCopyReallocator@PEAVAcDbEntity@@@@@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::sliceByPlane(class AcGePlane const &,class AcDbSurface * &,class AcDbSurface * &)" (?sliceByPlane@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@AEBVAcGePlane@@AEAPEAV1@1@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::sliceBySurface(class AcDbSurface const *,class AcDbSurface * &,class AcDbSurface * &)" (?sliceBySurface@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEBV1@AEAPEAV1@1@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::chamferEdges(class AcArray<class AcDbSubentId *,class AcArrayMemCopyReallocator<class AcDbSubentId *> > const &,class AcDbSubentId const &,double,double)" (?chamferEdges@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@AEBV?$AcArray@PEAVAcDbSubentId@@V?$AcArrayMemCopyReallocator@PEAVAcDbSubentId@@@@@@AEBVAcDbSubentId@@NN@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::filletEdges(class AcArray<class AcDbSubentId *,class AcArrayMemCopyReallocator<class AcDbSubentId *> > const &,class AcArray<double,class AcArrayMemCopyReallocator<double> > const &,class AcArray<double,class AcArrayMemCopyReallocator<double> > const &,class AcArray<double,class AcArrayMemCopyReallocator<double> > const &)" (?filletEdges@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@AEBV?$AcArray@PEAVAcDbSubentId@@V?$AcArrayMemCopyReallocator@PEAVAcDbSubentId@@@@@@AEBV?$AcArray@NV?$AcArrayMemCopyReallocator@N@@@@11@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::setSubentColor(class AcDbSubentId const &,class AcCmColor const &)" (?setSubentColor@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@AEBVAcDbSubentId@@AEBVAcCmColor@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::getSubentColor(class AcDbSubentId const &,class AcCmColor &)const " (?getSubentColor@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@AEBVAcDbSubentId@@AEAVAcCmColor@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::setSubentMaterial(class AcDbSubentId const &,class AcDbObjectId const &)" (?setSubentMaterial@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@AEBVAcDbSubentId@@AEBVAcDbObjectId@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::getSubentMaterial(class AcDbSubentId const &,class AcDbObjectId &)const " (?getSubentMaterial@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@AEBVAcDbSubentId@@AEAVAcDbObjectId@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::setSubentMaterialMapper(class AcDbSubentId const &,class AcGiMapper const &)" (?setSubentMaterialMapper@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@AEBVAcDbSubentId@@AEBVAcGiMapper@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::getSubentMaterialMapper(class AcDbSubentId const &,class AcGiMapper &)const " (?getSubentMaterialMapper@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@AEBVAcDbSubentId@@AEAVAcGiMapper@@@Z)
1>igaShell.obj : error LNK2019: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::dwgInFields(class AcDbDwgFiler *)" (?dwgInFields@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEAVAcDbDwgFiler@@@Z),函数 "public: virtual enum Acad::ErrorStatus __cdecl igaShell::dwgInFields(class AcDbDwgFiler *)" (?dwgInFields@igaShell@@UEAA?AW4ErrorStatus@Acad@@PEAVAcDbDwgFiler@@@Z) 中引用了该符号
1>igaShell.obj : error LNK2019: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::dwgOutFields(class AcDbDwgFiler *)const " (?dwgOutFields@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@PEAVAcDbDwgFiler@@@Z),函数 "public: virtual enum Acad::ErrorStatus __cdecl igaShell::dwgOutFields(class AcDbDwgFiler *)const " (?dwgOutFields@igaShell@@UEBA?AW4ErrorStatus@Acad@@PEAVAcDbDwgFiler@@@Z) 中引用了该符号
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::dxfInFields(class AcDbDxfFiler *)" (?dxfInFields@AcDbSurface@@UEAA?AW4ErrorStatus@Acad@@PEAVAcDbDxfFiler@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::dxfOutFields(class AcDbDxfFiler *)const " (?dxfOutFields@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@PEAVAcDbDxfFiler@@@Z)
1>igaShell.obj : error LNK2001: unresolved external symbol "public: virtual enum Acad::ErrorStatus __cdecl AcDbSurface::getPlane(class AcGePlane &,enum AcDb::Planarity &)const " (?getPlane@AcDbSurface@@UEBA?AW4ErrorStatus@Acad@@AEAVAcGePlane@@AEAW4Planarity@AcDb@@@Z)
The header and cpp files of the custom object are attached blow.