[ODE] tri-collider + DLL

nlin@nlin.net nlin at nlin.net
Thu Jun 27 05:46:01 2002


To use tri-collider with the msvc-dll configuration, you have to add
a few new exports to the config/msvcdefs.def file, because the tri-collider
uses functions not exported in the current msvcdefs.def. You need to
add:

dGeomGetClassData
dSpaceAdd
dCreateGeom
dCreateGeomClass
dInfiniteAABB
?_freeAll@dArrayBase@@IAEXH@Z
?dCollideBP@@YAHPBUdxGeom@@0HPAUdContactGeom@@H@Z
?_setSize@dArrayBase@@IAEXHH@Z

The last three entries are rather troubling, since they are C++ mangled
names (MSVC calls these "decorated" names). I have no idea about how
MSVC generates these names, if they change according to build settings,
or if they change from version to version of MSVC: You could probably
also use __dllexport and __dllimport in the ODE code itself to
take care of that, but then you need to #ifdef such declarations
so that the code still compiles on other, standards-conforming C++
compilers. It's probably possible to make a DLL without the .DEF exports
list, but I don't have the time to investigate it right now.

Also I've updated the tri-collider wiki page with some new notes.
If you see anything which needs improving, jump right in and do it.

-Norman