Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bug sur lib.exe de MSVC

4 réponses
Avatar
Sivaller
Bonjour,
c'est pour vous dire qu'il est impossible de réutiliser sur MSVC une
librairie écrit en delphi !!!

J'utilise la commande lib.exe pour produire un .lib depuis un .def ;

lib.exe produit un mauvais .lib
La preuve est ici = http://sivallerstatic.no-ip.org/test.zip

Le compilo me produit l'erreur :
test.obj : error LNK2001: unresolved external symbol "unsigned char
__stdcall retourne5(void)" (?retourne5@@YGEXZ)
Debug/test.exe : fatal error LNK1120: 1 unresolved externals


On peux toujours utiliser Loadlibrary mais c'est bas niveau ;
Comment produire un .lib depuis une .dll et .def ?

Merci

4 réponses

Avatar
Bertrand Lenoir-Welter
Sivaller :

c'est pour vous dire qu'il est impossible de réutiliser sur MSVC une
librairie écrit en delphi !!!



Il me semble que les formats de librairie Microsoft (COFF) et Borland
(OMF) sont incompatible. En tout cas, ils l'étaient ; je sais pas si
c'est resté d'actualité avec Delphi. Dans l'affirmative, il faut
transcoder la librairie d'un format à l'autre.
Avatar
Bertrand Lenoir-Welter
Sivaller wrote:

c'est à dire ?



C'est à dire que les en-têtes des deux formats sont différents et
incompatibles vu du linker. Il existe des utilitaires de conversion de
format, par exemple COFF2OMF pour importer une lib MS vers Borland. Je
suppose qu'il existe aussi un convertisseur OMF->COFF. Au hasard sur
Google, je tombe sur un lien :
http://greybird.developpez.com/fichiers/Omf2Coff.exe

Après, eh bien c'est à toi de jouer (j'ai pas essayé, principe de
précaution). Normalement, tu lances la chose depuis une ligne de
commande en passant en argument le nom de ta librairie entrante OMF et
le nom de celle sortante COFF. Ensuite yapuka linker.

Au fait, est-ce que Delphi n'est pas fichu de produire à la demande une
lib en format COFF ? Et Visual Studio d'importer une lib OMF ?
Avatar
Sivaller
> transcoder la librairie d'un format à l'autre.


c'est à dire ?
Avatar
Sivaller
> http://greybird.developpez.com/fichiers/Omf2Coff.exe



Il me demande le fichier vcl60.bpl ;