De nos jours les fabricants de matériels de tout poil abandonnent progressivement les ActiveX au profit des .net suivant en cela les directives de Microsoft.
La question clé est donc comment utiliser un assemblage .net lorsque l'on développe en Delphi XE2 ou XE3 ou XE4.
La documentation Embarcadero dit ceci:
Importer un assemblage .NET
Cliquez sur cet élément pour importer un assemblage .NET en tant qu'objet COM. L'assemblage .NET GAC recensé que vous sélectionnez sera l'ancêtre du composant que vous créez.
Donc inutilisable avec un PC 64 bits
Remarque : L'expert Importer un composant examine seulement le registre 32 bits. Lorsque l'exécution s'effectue sur un système 64 bits, vous devez utiliser directement TLIBIMP.EXE si vous voulez importer un contrôle ActiveX ou une bibliothèque de types spécifique à un système 64 bits.
La doc dit donc implicitement que l'on ne peut pas charger d'assemblage .net en 64 bits. Et pourtant Embarcadero dit le contraire dans sa Pub.
Le tentatives faites en essayant de charger des composants fournis en version .net (exemples: eVision, MIL, VrMagic, OpenCV, ComponentOne...) à l'aide du bouton "ajouter" se soldent par des échecs cuisants (pas de visibilité des classes, composants non enregistrés, erreur de chargement de la dll et j'en passe). Le développeurs de ces produits n'ont aucune directive à donner s’abritant derrière un sibyllin "on ne connaît pas Delphi et on ne maintient rien pour cette plateforme".
J'ai fait aussi des tentatives avec des assemblages que j'utilise en version composants VCL (Teechart par exemple) sans plus de succès.
Les quelques discussions dans le forums sont assez décourageantes un exemple:
https://forums.embarcadero.com/threa...threadID=38369
http://stackoverflow.com/questions/7...-in-delphi-xe2
Les essais avec Crosstalk et Hydra sont tout aussi peu concluants. Pour Crosstalk il n'importe que des objets non visuels... et Hydra ne prend en charge que des assemblages d'un certain type.
Je suis prêt à collaborer avec tout développeur confronté à ces problèmes pour trouver des solutions.
A toutes fins utiles les ActiveX avaient ce mérite d'être effectivement utilisables avec toute plateforme de développement civilisée. Il ne semble pas que ce soit le cas pour les assemblages .net.
Et pourtant tout se passe bien lorsque l'on utilise ces assemblages en C# Visual Studio. Volonté de Microsoft de faire de l'ombre à Embarcadero.
Les développeurs des Versions récentes de Delphi ont-ils des solutions à proposer?
Partager