Bonjour à toutes et à tous,
J'aimerais savoir si quelqu'un d'entre vous a déjà réussi à instancier sous C++ Builder XE2 des classes exportées depuis une DLL développée sous Visual Studio C++ 2010 ?
Merci par avance,
Bonjour à toutes et à tous,
J'aimerais savoir si quelqu'un d'entre vous a déjà réussi à instancier sous C++ Builder XE2 des classes exportées depuis une DLL développée sous Visual Studio C++ 2010 ?
Merci par avance,
Merci Crayon pour les liens, je vais lire tout ça;
J'ai essayé d'utiliser les utilitaires IMPDEF et IMPLIB, mais cela ne fonctionne pas bien, en fait, les 2 formats des fichiers DEF entre Visual Studio C++ et XE2 ne se ressemblent pas trop, du coup, j'avais pensé pour utiliser ces utilitaires, quitte à modifier à la main les fichiers DEF, mais je ne comprend pas comment passer de l'un à l'autre ...![]()
Après lecture, il s'avère que la partie "5. Utilisation statique d'une DLL "étrangère" n'est possible que sur des DLL comportant des méthodes et non pas des classes ...
J'ai eu affaire à une DLL en Visual aussi voir DLL mélange export C et C++
j'ai joué avec implib et tdump
Avec un fichier IMPDEF, j'ai pu générer un fichier DEF pour retirer les décorations mais une DLL sans décoration m'a été fournie, je n'ai pas eu besoin de conserver cette bidouille
le mieux pour le moment reste la génération du fichier LIB par ImpLib mais uniquement pour les fonctions exportées pas pour les classes
le fichier LIB qui est différent entre MS et Borland,
le fichier DEF qui n'est qu'un simple fichier texte, je sais que MS supporte ? dans le nom des fonctions mais pas BCB, j'ignorais que ce fichier pouvait contenir autre chose !
MS ne respecte souvent pas les normes du C++ strict pas plus que BCB et chacun les siennes !
Pour ce qui concerne des classes dans une DLL, j'ai tendance à considérer cela comme une mauvaise pratique pour de l'interopérabilité car compatible avec presque aucun langage, une DLL doit exporter des API avec des types bien défini (idéalement des types Windows) et au besoin des interfaces que l'on utiliserait presque comme du COM
D'ailleurs, je ne pratique pas l'utilisation statique lui préférant LoadLibrary\GetProcAddress pour un meilleur contrôle du chemin, ne pas avoir une dépendance permanente mais juste ponctuelle sur un module, ...
J'avais mémoire d'un sujet sur "classes C++ exportables" mais il était déjà de toi, cela ne semble pas fréquent comme demande !
Toujours la même DLL ?
Tu en es l'auteur ?
Es-tu obligé d'utiliser cette DLL, tu n'as pas d'autres lib qui font la même chose mais plus "ouverte"
Pourquoi ne pas faire une DLL Intermédiaire en Visual C++ qui encapsule cette classe dans un objet COM, cela t'éviterait toutes ces misères !
A savoir que les BPL c'est justement la variante "classes Delphi exportables" utilisé dans C++Builder et les BPL sont strictement utilisables en Delphi\BCB de même version de compilateur
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Merci pour tes précisions ShaiLeTroll
Je pense effectivement que nous allons passer par un objet COM, (ou ActiveX), encapsulant les classes désirées. Pour la DLL non, je ne suis pas l'auteur, mais j'ai le source, vu que c'est un projet "Open Source"
Partager