This example from the manual isn't the best in my opinion.

I will try a better one:
Code:
//#define USE_PHYSX3

#ifdef USE_PHYSX3
	#include <ackphysx3.h>
	#else
	#include <ackphysx.h>
#endif

void create_physics_ent()
{
	ENTITY* ent_tmp=ent_create(CUBE_MDL,nullvector,NULL);
	
	#ifdef USE_PHYSX3
		pX3ent_settype(ent_tmp,PH_RIGID,PH_BOX);
		pX3ent_setdamping(ent_tmp,50,80);
		pX3ent_setskinwidth(ent_tmp,0);
		pX3ent_setiterations(ent_tmp,16);
		pX3ent_setfriction(ent_tmp,100);

		#else

		pXent_settype(ent_tmp,PH_RIGID,PH_BOX);
		pXent_setdamping(ent_tmp,50,80);
		pXent_setskinwidth(ent_tmp,0);
		pXent_setiterations(ent_tmp,16);
		pXent_setfriction(ent_tmp,100);
	#endif
}



In my example I use it to switch between A8 PhysX DLL and the Community PhysX3 DLL. I just have set or unset "#define USE_PHYSX3" and the whole code is changing.