Integration Objects and DLL version of COLLADA_DOM
So I tried static linking to COLLADA_DOM and its dependencies, without success. Got everything to link, but nasty runtime errors upon startup. (Vis Studio .NET 2005.) So I quickly decided to link to the DLL version instead. All is well. No nasty runtime errors on startup. All seems to be well.
Next step is to build some integration objects. So I take one of the templates as is, and copy it into my app. Changed the name to something reasonable for my naming convention, and tried to build.
The app did not link. Complained about not finding the symbol for the daeMetaElement method daeTArray<daeMetaElement**> &_classMetaPointers(). Sure enough, that function (nothing in the class actually) is not exported. So, my app hooking up to COLLADA_DOM via the DLL Interface cannot get to the method.
My solution was simply to add DLLSPEC to that method. So, now my version of daeMetaElement.h looks like this:
daeTArray<daeMetaElement**> DLLSPEC &_classMetaPointers();
Had to rebuild of course, but that's no problem.
I suspect as time goes on, I'll have to force other methods to be exported. I'll try to remember to post info here for other folks using the DLL version of COLLADA_DOM.
(Er, if I've missed some super critical bit about the proper usage of the library, please feel free to advise me here. Ideally I would like to minimize the amount of time I fixup the library!)
Somebody had "discovered" that earlier and posted a bug about it in the SF project site.
The fix for that is in the subversion repository and also the newest source release, COLLADA 1.4.1 DOM 1.3 released friday March 30th.
If there are any other missing exports then please bug them at the sourceforge project page.