none
Interger une DLL crée par BCB RRS feed

  • Question

  • J'ai 4 DLL intégrés par bcb J'ai suivi les consignes de microsoft

    Mais au step ajouter une référence j'ai choisi de sélectionner ces dll

    Cette sélection a été refusée par Visual Studio 2010 sous la raison que cette dll n'était pas .NET ni d'un contrôle activeX.

    Je demande une procédure qui m'évite de recompiler les DLL.

    Quand j'aurais la solution, j'aurais migré plus de 50% de l'application et la migration aura duré moins de 4 jours

    Après la phase de maquette qui a duré un mois. Mais je vous livrerai un getting started pour cette étape


    Jean Noël Martin


    dimanche 13 mai 2012 18:29

Réponses

  • Une DLL est accompagnée d'un fichier LIB que l'on utilise pour cela. Le
    fichier LIB a le même nom que la DLL.
     
    Pour pouvoir utiliser la DLL dans un projet C++, il faut ajouter le
    chemin+nom du fichier LIB dans les propriétés du projet : menu
    Projet/propriétés, onglet Edition de line/Entrée. Ajouter chemin+nom du
    fichier lib dans le champ "dépendence additionnelles".
     
    Pour ajouter plusieurs DLL, ajoutez plusieurs fichiers LIB dans le
    champ, séparés par des points-virgules.
     
    dimanche 13 mai 2012 22:44
    Auteur de réponse
  • Je crois que vous êtes bon pour la compilation d'un .def :-(

    http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/41c5dae4-cb0f-41e0-a2e3-1118443c4157


    Paul Bacelar, Ex - MVP VC++

    lundi 14 mai 2012 10:56
    Modérateur
  • Je n'ai pas encore pris de décision: j'ai deux solution: j'avais poussé une partie du code dans des DLL pour tourner les limitations de bcb. une autre solution est de migrer ce code en gardant la possibilité de le repousser en Dll si c'est nécéessaire

    J'ai finalement retenu la solution du def qui est documenté dans le thread

    le processus à suivre est comme décrit ci-après:

    on démarre avec l'outil Borland impdef pour générer les fichiers .def

    Ce fichier se trouve dans le répertoire program files\borland\CBuilder6\Bin

    impdef votre.def votre.dll

    le fichier est créée dans votre répertoire de travail. Ce fichier contient la définition de toutes les fonctions exportées de la dll.
    Le fichier porte son extension mais vous ne le voyez pas a l'explorateur: dans l'explorateur il apparait comme Export Définition File.

    il faut ensuite créer le fichier .lib qui va prendre le format COFF à partir de l'outil lib qui est lancé par Visual Studio

    lib /DEF:votre.def

    qui va produire le fichier .lib dans le format correct.

    il vous reste à appeler les .lib dans votre solution Visual Studio et à générer.


    Jean Noël Martin


    • Modifié JeanNoel53 jeudi 24 mai 2012 12:24
    • Marqué comme réponse JeanNoel53 jeudi 24 mai 2012 12:25
    mardi 15 mai 2012 00:06

Toutes les réponses

  • Une DLL est accompagnée d'un fichier LIB que l'on utilise pour cela. Le
    fichier LIB a le même nom que la DLL.
     
    Pour pouvoir utiliser la DLL dans un projet C++, il faut ajouter le
    chemin+nom du fichier LIB dans les propriétés du projet : menu
    Projet/propriétés, onglet Edition de line/Entrée. Ajouter chemin+nom du
    fichier lib dans le champ "dépendence additionnelles".
     
    Pour ajouter plusieurs DLL, ajoutez plusieurs fichiers LIB dans le
    champ, séparés par des points-virgules.
     
    dimanche 13 mai 2012 22:44
    Auteur de réponse
  • J'ai suivi vos conseils. Au link les fichiers lib produits par borland sont déclarés non valides par Visual Studio 2010. Est ce à dire que ces fichiers ne sont pas normalisés, et dans ce cas il faudra migrer tout ce code. Je l'avis mis en DLL pour tourner les problèmes de BCB.

    Jean Noël Martin

    lundi 14 mai 2012 05:42
  • Je crois que vous êtes bon pour la compilation d'un .def :-(

    http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/41c5dae4-cb0f-41e0-a2e3-1118443c4157


    Paul Bacelar, Ex - MVP VC++

    lundi 14 mai 2012 10:56
    Modérateur
  • Je vous remercie de cette réponse. ça me dit que je ne suis pas le seul qui ait ce problème. Je dois l'étudier à fond avant de clore le problème.

    à première vue il y a un utilisateur qui a trouvé une solution et pas l'autre.


    Jean Noël Martin

    lundi 14 mai 2012 11:46
  • La solution n'est-elle pas de faire un .def pour générer un .lib au format COFF attendu par VC++ ?

    Paul Bacelar, Ex - MVP VC++

    lundi 14 mai 2012 16:12
    Modérateur
  • Je n'ai pas encore pris de décision: j'ai deux solution: j'avais poussé une partie du code dans des DLL pour tourner les limitations de bcb. une autre solution est de migrer ce code en gardant la possibilité de le repousser en Dll si c'est nécéessaire

    J'ai finalement retenu la solution du def qui est documenté dans le thread

    le processus à suivre est comme décrit ci-après:

    on démarre avec l'outil Borland impdef pour générer les fichiers .def

    Ce fichier se trouve dans le répertoire program files\borland\CBuilder6\Bin

    impdef votre.def votre.dll

    le fichier est créée dans votre répertoire de travail. Ce fichier contient la définition de toutes les fonctions exportées de la dll.
    Le fichier porte son extension mais vous ne le voyez pas a l'explorateur: dans l'explorateur il apparait comme Export Définition File.

    il faut ensuite créer le fichier .lib qui va prendre le format COFF à partir de l'outil lib qui est lancé par Visual Studio

    lib /DEF:votre.def

    qui va produire le fichier .lib dans le format correct.

    il vous reste à appeler les .lib dans votre solution Visual Studio et à générer.


    Jean Noël Martin


    • Modifié JeanNoel53 jeudi 24 mai 2012 12:24
    • Marqué comme réponse JeanNoel53 jeudi 24 mai 2012 12:25
    mardi 15 mai 2012 00:06