Quantcast
Channel: Autodesk AutoCAD forums
Viewing all articles
Browse latest Browse all 14319

Dose overrule Really support ObjectArx2010?I Got a link error on Arx2010

$
0
0

   I made a Arx program which used overrule mechanism on ObjectArx 2010.I wanted to change the drawing effect about Acdbpoint, so I wrote a class derived from AcGiDrawableOverrule,and overrided the function worldraw().My main codes look just as follow: 

//////header file ////////////////////////////////// 
class DrawOverrule : public AcGiDrawableOverrule 

public: 
    ACRX_DECLARE_MEMBERS(DrawOverrule); 
... 
    virtual bool isApplicable(const AcRxObject* pOverruledSubject) const; 
    virtual  Adesk::Boolean worldDraw(AcGiDrawable* pSubject, AcGiWorldDraw * wd); 


//////cpp file ///////////////////////////////////// 
ACRX_CONS_DEFINE_MEMBERS(DrawOverrule,AcGiDrawableOverrule,0) 

Adesk::Boolean DrawOverrule::worldDraw( AcGiDrawable* pSubject, AcGiWorldDraw * wd ) 

//do something 
    return Adesk::kTrue; 


bool DrawOverrule::isApplicable( const AcRxObject* pOverruledSubject ) const 

    return true; 

///////////////////////////////////////////////////// 

         
       When I compiled and builded the project,a link error occured. 

       acrxEntryPoint.obj : error LNK2001:  unresolved external symbol "public: virtual class AcRxClass * __cdecl AcRxOverrule::isA(void)const " (?isA@AcRxOverrule@@UEBAPEAVAcRxClass@@XZ

        AcRxOverrule::isA()? It is Internal class which is offered by objectarx sdk,not my own class.I checked my configure on lib path, it is just all ok.If I made a project without anything refer to overrule mechanism,no error occur. More surprisingly,when I change my lib link to objectArx2012,that link error about AcRxOverrule::isA() will not occur,the compiler wil made success. 

      I guess that there may be some mistake in released objectarx2010,which I'm not very sure.Anybody else ever met similar problem?

      Thanks very much.


Viewing all articles
Browse latest Browse all 14319

Trending Articles