打开EmployeeDetails项目的acrxEntryPoint.cpp文件,然后在CEmployeeDetailsApp类的On_kInitAppMsg()方法中将DBX注册为服务。 当卸载DBX模块时,我们应该从acrxDynamicLinker中删除我们的服务名称。 这可以在方法On_kUnloadAppMsg()中完成。 当然,您需要在acrxEntryPoint.cpp文件中包括AsdkEmployeeDetails.h文件。.

virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {

AcRx::AppRetCode retCode =AcRxDbxApp::On_kInitAppMsg (pkt) ;

// TODO: Add your initialization code here

acrxRegisterService(ASDKEMPLOYEEDETAILS_DBXSERVICE);

return (retCode) ;

}

virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {

AcRx::AppRetCode retCode =AcRxDbxApp::On_kUnloadAppMsg (pkt) ;

// TODO: Add your code here

delete acrxServiceDictionary->remove(ASDKEMPLOYEEDETAILS_DBXSERVICE);

return (retCode) ;

}

加载ObjectDBX模块时注册类:

在EmployeeDetails项目中打开文件AsdkEmployeeDetails.h,您将注意到以下代码:

#ifdef EMPLOYEEDETAILS_MODULE

ACDB_REGISTER_OBJECT_ENTRY_AUTO(AsdkEmployeeDetails)

#endif

在加载和卸载ObjectDBX模块时,上述宏将负责注册和注销AsdkEmployeeDetails类。 这将确保在加载ObjectDBX模块时,将自定义对象类注册到ObjectARX运行时类树中。

可以使用以下代码注册该类。 当然,我们不必使用它,因为宏为我们做了它

AsdkEmployeeDetails::rxInit(); 
acrxBuildClassHierarchy(); 

要从ObjectARX运行时类树中删除该类,我们可以使用以下代码。 再次,当卸载ObjectDBX模块时,宏将负责从ObjectARX运行时类树中删除该类。.

deleteAcRxClass(AsdkEmployeeDetails::desc());

编译ObjectDBX模块:

右键单击Visual Studio资源管理器中的EmployeeDetails项目,然后编译ObjectDBX项目,然后单击“确定”。 "Build".

 

NEXT: ADDDETAIL,LISTDETAILS和REMOVEDETAIL命令的实现

 

Initializing AsdkEmployeeDetails class
Copyright ? 2013 Autodesk, Inc.