en double de la question suivante: C function conflictComment utiliser 2 C libs qui exportent les mêmes noms de fonction
Salut, dans mon projet actuel, je dois utiliser une sorte de lib interface. Les noms des fonctions sont donnés par cette interface, ce que font ces fonctions est le choix des développeurs. Autant que je sache, un projet doit utiliser cette fonction et quand il s'agit de compiler, choisissez la lib et la fonctionnalité. Ce que je tente de faire est d'utiliser une lib existante et mon lib en même temps en enveloppant l'autre et l'appeler dans les fonctions mein:
otherlib:
int function1 (int a) {
// do something
}
mylib:
int function1 (int a) {
//my code here
otherlib::function1(a);
}
Le problème est que je n'ai pas accès à l'autre lib et l'autre lib n'a aucun espace de noms. Je l'ai déjà essayé
namespace old {
#include "otherlib.h"
}
puis appeler l'ancienne fonction par le vieux :: function1 dans ma fonction. Cela fonctionne tant que c'est seulement le fichier d'en-tête. La lib exporte son symbole dans l'espace global. Également quelque chose comme
namespace new {
function1 (int a) {
::function1(a);
}
}
ne fonctionnait pas. Last but not least, j'ai essayé ifdefs et définit here
mais je n'ai pas réussi.
Des idées pour résoudre ce problème? Merci d'avance.
EDIT:. Je n'ai pas accès à l'ancien lib, ni le projet les deux libs doivent être utilisés dans
EDIT2: au moins l'ancien lib est un
J'ai vu cela mais je n'ai pas accès au projet dans lequel ils doivent être utilisés. – DaClown