Je veux remplacer certaines des appels de fonction pour différentes Api pour l'amour de l'enregistrement des appels, mais j'ai aussi susceptibles de vouloir manipuler les données avant de les envoyer à la fonction réelle.
Par exemple, dis-je utiliser une fonction appelée getObjectName
des milliers de fois dans mon code source. Je veux désactiver temporairement cette fonction, parfois, parce que je veux changer le comportement de cette fonction pour voir le résultat différent.
J'ai créer un nouveau fichier source comme ceci:
#include <apiheader.h>
const char *getObjectName (object *anObject)
{
if (anObject == NULL)
return "(null)";
else
return "name should be here";
}
J'ai compiler tous mes autres source comme je le feriez normalement, mais je le lier à l'encontre de cette fonction première, avant la liaison avec l'API de la bibliothèque. Cela fonctionne bien sauf que je peut évidemment pas à l'appel de la fonction réelle à l'intérieur de ma fonction dominante.
Est-il un moyen plus facile de "remplacer" une fonction sans se relier/compilation les erreurs/avertissements? Idéalement, je veux être en mesure de remplacer la fonction par suffit de compiler et lier un fichier supplémentaire ou deux, plutôt que de bricoler avec des options de liaison ou de modifier le code source de mon programme.