Bonjour à tous
Si je veux écrire une fonction en C, et la lier à un projet Delphi : sous D-2007, je suppose qu'il me faudrait passer par Bulder pour écrire la fonction C, et rajouter l'OBJ via l'EDI de D-2007 ?
Merci
Bonjour à tous
Si je veux écrire une fonction en C, et la lier à un projet Delphi : sous D-2007, je suppose qu'il me faudrait passer par Bulder pour écrire la fonction C, et rajouter l'OBJ via l'EDI de D-2007 ?
Merci
Tu peux aussi la traduire en Pascal, ou l'exporter dans une dll.
OK. Merci Mais la solution de l'OBJ reste techniquement possible ?
Ni OBJ ni LIB
Delphi est capable de compiler en format DCU et en format OBJ, mais C++ ne le sait pas !
avec C++Builder, tu peux tenter de faire un BPL qui est en fait une DLL mappée sauce Borland
Sinon, une DLL tout simple avec des fonctions (noms non décorées) exportées et accessible via LoadLibrary\GetProcAddress
Est-ce que ta fonction ne pourrait pas s'écrire en Delphi ?
si tu peux lier un .OBJ avec {$L fichier.obj} et déclarer ses fonctions "external", c'est ce qui a été fait pour les jpeg et la zlib par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 {$IFDEF MSWINDOWS} {$L deflate.obj} {$L inflate.obj} {$L infback.obj} {$L inffast.obj} {$L inftrees.obj} {$L trees.obj} {$L compress.obj} {$L uncompr.obj} {$L adler32.obj} {$L crc32.obj} {$L zutil.obj} {$L gzclose.obj} {$L gzread.obj} {$L gzwrite.obj} {$L gzlib.obj} {$ENDIF} function zlibVersion: PAnsiChar; cdecl; external; ...
En 2011, j'avais essayé d'extraire un OBJ d'un LIB en MSVC++ avec TLIB et de l'intégrer avec Borland mais il n'a jamais réussi à me trouver les fonctions
ça fonctionne avec zlib, peut-être une différence entre un OBJ de C et de C++ !
N'ayant pas réussi, si ça fonctionne bvsud entre C++Builder et Delphi, ton expérience m'intéresse
alors, attention, tu peux importer des fonctions C, pas des objets C++ d'ailleurs Delphi ne peut déclarer que des fonctions externes, pas de variables ou quoi que ce soit d'autre (mais on peu ruser, cf le lien ci-dessous)
avant XE2 Delphi ne supportait que les fichiers objets au format OMF, depuis XE2 on peut lier des fichiers objet COFF.
Ah, je ne savais pas cette nouveauté, en BCB2007, j'avais regardé Coff2Omf sans grand succès pour récupérer un LIB correct (une version MSVC++ fournie avec la DLL)
J'avais quelques fonctions décorées avec des caractères ? que ne supportait pas BCB2007, et j'ai tenté une bidouille via IMPDEF\IMPLIB + Edition du LIB, cela fonctionnait mais quelle horreur ces noms décorées MS qui ne sont pas standards !
Finalement, j'ai récupéré mon LIB avec IMPLIB et les fonctions dont j'ai besoin de ne pose pas de problème pour la version "officielle" de ce Kit
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager