Ich hab da ein beispiel, da läuft das so:
Code:
void HeartbtAct(UNIT* pUnit, unsigned char Cmd, unsigned short Param)
{
}
// --------------------------------------------------- 
UNIT* HeartbtBuild(UNIT* pUnit, unsigned char UnitClass,  unsigned char UnitIdent)
{
	pUnit->iVect	= (int)HeartbtAct;  //SETZEN VECTOR
}

.....

später dann:

union {void (*vVec)(UNIT* pUnit, unsigned char Cmd, unsigned short Param);
	int iVec;
	} Vec;

UNIT* 	pUnit	= (UNIT*)pMsg->iUnit;    
		Vec.iVec = pUnit->iVect;   // HOLEN VECTOR

		(*Vec.vVec)(pUnit, pMsg->bCommand, pMsg->wParam);
             // und aufrufen
Sieht wüst aus, aber du siehst, eigentlich brauch ich da nix tricksen

Ich hoff', Du kannst Dir das ausdeutschen ?