I don't know too much really too - I'm just going by what Mike J gave me
Anyway, you know in a C program where you type all you #includes, definitions etc? Usually at the top of the program? Well put this
typedef void ( *PositionObjectPFN ) ( int, float, float, float );
PositionObjectPFN dPositionObject;
That creates a new typedef laying out what params your function will take and what it'll send back and then creates an instance of it called dPositionObject.
Then, somewhere, perhaps in an initialisation function grab the pointer to the function you want to call and give it to dPositionObject.
dPositionObject = ( PositionObjectPFN ) GetProcAddress ( g_pGlob->g_Basic3D, "?Position@@YAXHMMM@Z" );
Then it's just used like a simple function. If you want to change the function you're using just change the name in GetProcAddress from ?Position(etc) to the garbled name of the function you want to call.
And if the function is in basic3d.dll then you'd use g_Basic3D etc. - there's a list of namespaces in globstruct.h so you can have a look.