Salut tout le monde,
je suis en train de développer des objets automation. Je suis ce tutoriel : ftp://ftp-developpez.com/delphi/cours/com/Automat.pdf qui est très bien.
Je dois avoir été mal habitué avec Delphi, passant du C++ à Delphi, quel ne fut pas mon bonheur de découvrir que l'utilisation des string est extrèmement simple. Malheureusement, ce type n'existe pas dans les autres langages et son usage dans des objets COM pose problème de la même façon qu'il pose problème dans les dll.
Il existe 3 solutions :
* Mettre ShareMem en premier uses du projet de la bibliothèque ActiveX ET dans les projets utilisant les objets automations.
* Remplacer tous les string par des PChar.
* Remplacer tous les string par des ShortString.
Mais je ne sais pas si la librairie ShareMem existe dans tous les langages et je me vois mal obliger les utilisateurs de mes objets COM à devoir inclure en premier cette librairie.
L'utilisation des PChar est plus fastidieuse à devoir gérer la taille du PChar à la main. Dans le document qui explique l'utilisation des PChar dans les dll : http://alphomega.developpez.com/DllString/
il est dit qu'il faut à chaque fois passer la taille max du PChar en paramètre.
L'utilisation des ShortString est limitant à 255 caractères.
Est-ce que les WideString peuvent être utilisés pour remplacer les ShortString ?
Mon soucis est que je devrais modifier toutes les sources, il y a plusieurs dizaines de milliers de ligne s'il faut, je voudrais trouver la meilleure solution avant de commencer ce gros travail.
Pour info, je ne connais pas à priori les langages qui utiliseront ces objets COM, sûrement au minimum, Delphi, C++, C#, VB .Net.
Merci pour vos conseils.
Partager