I think I just answered my own question regarding whether I can use the EXPORT macro in the header that declares the class being exported.  Since the EXPORT macro instantiates a static guid_initializer for the class, including it in multiple source files creates multiple static objects and results in link errors.

 

So at this point, I wonder, why bother with the EXPORT macro at all?  Given that the class has to be registered with the archive, why not just use register_type when the archive is created?  When I thought the EXPORT macro allowed me to register the class in the same header where the class is created, it seemed very useful.  Now I guess I don’t see any advantage of using EXPORT.  Am I missing something?

 

Thomas Aylesworth

Senior Software Engineer

Reality Mobile