Dans certains cas, il est possible d'extraire des membres d'un fichier .lib à l'aide d'outils tels que le convertisseur de fichiers d'objets d'Agner Fog (voir http://www.agner.org/optimize/?e=0,34,36) en fichiers .obj.
La syntaxe est
objconv.exe libname.lib -lx
pour extraire tous les membres.
En extrayant tous les membres, vous pouvez vous assurer qu'il n'y a aucun membre manquant. Cependant, s'il existe d'autres dépendances (vers d'autres fichiers .lib), ceux-ci ne seront pas résolus et devront être résolus manuellement. De plus, la traduction des fichiers d'en-tête est toujours requise.
Remarque: Le format de fichier d'objet peut également être converti. Delphi ne comprend que OMF, alors que les compilateurs Intel (par exemple) ne crachent que COFF. Une conversion est donc nécessaire, ce qui peut également être fait par l'outil. Comme cela a été dit, cela ne fonctionne que dans certains cas et cela nécessite sûrement une certaine expertise dans ce domaine, car le compilateur n'aidera pas beaucoup avec les messages d'erreur (souvent les messages sont irritants et trompeurs).
Cette réponse fait l'hypothèse qu'un fichier DLL compilé est disponible pour le fichier LIB associé. Il est en fait possible de compiler quelque chose comme un fichier LIB ou un fichier DLL. Lorsqu'un fichier DLL est disponible, il suffit de convertir les fichiers d'en-tête associés (.H). Cependant, lorsque le code n'a été rendu disponible que dans un fichier LIB, il est nécessaire de convertir complètement la source en Delphi (si disponible) pour pouvoir l'utiliser dans Delphi. Cela dit, il est regrettable que Delphi n'ait pas pris en charge .LIB alors que de nombreux autres compilateurs l'ont soutenu depuis un certain temps. – Glenn1234
@glen pour lier à une lib statique vous pouvez simplement lier la lib dans une DLL avec un compilateur C –
@David: Afaik les symboles ne seront pas déclarés avec des drapeaux d'exportation alors, et donc pas visible? –