I am trying to bring an existing and running piece of ART2.53 code into a bigger project (animation engine on top of OpenInventor). The animation engine is build with VC60 as DLL and compiles/works fine as long as I don't use any ART code. As soon as I include AR/ARFrameGrabber.h (without using any of it's functionality, e.g. instantiating a camera instance) the compiler throws errors in this order (the path name has been abridged, multiple similiar errors were omitted):
\vc98\atl\include\atlbase.h(2626) : error C2065: 'alloca' : undeclared identifier
\vc98\atl\include\atlbase.h(4629) : error C2039: 'bstrVal' : is not a member of 'CComVariant'
\vc98\atl\include\atlbase.h(4704) : error C2440: '=' : cannot convert from 'unsigned short *' to 'int'
It's looks like there is a mismatch between the members of the class used and the declaration of the class. But that can hardly be the case, as this ATL class is a system component. I can learn from the header comment of ATL.CPP that it implements DLL exports. When I exclude the atl libs my source won't compile (of course as they seem to do all the DLL functionality). What do the ATL classes exactly provide and how do they work?
Has anybody used ART as part of a .DLL before? I don't know much about the special design behind DLLs, so maybe the design of ART is incompatible with that? Or do I need special compiler settings? Any other ideas?
The standard directories are set to search for include files and libraries. Should I include some special directories or libraries? Maybe I am on the completely wrong track, so please correct me. Any hint is appreciated.