IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

Redefinition de symbole au link VC8


Sujet :

VC++ .NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Par défaut Redefinition de symbole au link VC8
    Bonjour,

    Je vais tenter d'exposer mon souci le plus clairement possible.

    J'ai une bibliothèque libA dont une fonction fcta() réalise un appel à la fonction fctb() d'une bibliothèque libB.
    Je souhaite linker libA et libB dans un exécutable où tous les appels à fctb() seront déroutés sur une fonction fctb_bouchon() définie dans l'exécutable.


    Pour donner quelques information sur le contexte, les bibliothèque sont des bibliothèques statiques C/C++. Les symboles à détourner sont uniquement décorés à la mode C. Le Visual utilisé est un Visual studio express 2008.

    Le projet possède plusieurs cibles de compilation dont une GCC. Pour cette dernière je m'en suis sorti avec l'option -defsym du linker LD. Je n'ai cependant pas réussi à trouver d'option équivalente pour le linker.exe de VC8.

    Si quelqu'un à une idée, une piste, ou si vous avez des questions ou besoin de détails supplémentaires, je reste à votre disposition.

    Merci d'avance,

    Benoit

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    Si tout est statique, pourquoi ne pas faire le hack juste avec quelques MACRO ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define fctb fctb_bouchon
    dans le .h de libA.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Par défaut
    Dans mon contexte, je ne peux pas me permettre de toucher ni au contenu et ni à la définition de la libA ou ceux de la libB. J'ai seulement "le droit" de jouer avec le linker et ses options ou éventuellement le code de l'exécutable.

    Merci pour l'idée.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    Dans mon contexte, je ne peux pas me permettre de toucher ni au contenu et ni à la définition de la libA ou ceux de la libB. J'ai seulement "le droit" de jouer avec le linker et ses options ou éventuellement le code de l'exécutable.
    C'est aussi ridicule qu'un général disant à son chauffeur lors d'une crevaison :
    "N'utiliser pas le cric (les sources avec #ifdef), mais vous avez doit au téléporter intergalactique (option du linker), ou à la bombe H (patch à chaud de l'exécutable)"

    La plus proche des solutions mais que je n’ai pas testé avec une lib static, est d'utiliser /DEF lors du link de libB pour renommer un symbole avec un autre nom (non utilisé).
    http://msdn.microsoft.com/en-us/libr...(v=VS.80).aspx
    et d'utiliser le nom de la fonction directement dans l'exécutable.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est aussi ridicule qu'un général disant à son chauffeur lors d'une crevaison :
    "N'utiliser pas le cric (les sources avec #ifdef), mais vous avez doit au téléporter intergalactique (option du linker), ou à la bombe H (patch à chaud de l'exécutable)"
    Le périmètre que je définie dans ce topic correspond à une problématique industriel de tests réel dont je ne fais pas ici état car là n'est pas le débat. Il y a un existant que je ne peux pas ignorer ni remettre en cause.

    Ceci étant dis, merci pour tes contributions. Je vais refaire une passe sur le /DEF. Mais à la première revu de doc du compilo, il ne m'avait pas semblé que cela fasse l'affaire. Je vous tiens au courant chers lecteurs !

Discussions similaires

  1. renommer un symbol au link
    Par damienDaG dans le forum GCC
    Réponses: 0
    Dernier message: 06/06/2012, 09h39
  2. HP aCC: ignorer les symbole dupliqué lors du link
    Par fdubks dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 23/08/2007, 10h41
  3. Réponses: 2
    Dernier message: 21/04/2007, 10h59
  4. Réponses: 5
    Dernier message: 15/01/2007, 21h15
  5. Vista et les "Symbolic links"
    Par Alain B. dans le forum Windows Vista
    Réponses: 6
    Dernier message: 30/08/2006, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo