Salut a tous,
étant en migration d'une application Delphi (7) vers C++ & Qt, j'arrive sur ce sujet, et je préfère m'assurer du comportement qu'aura mon application.
D'abord, ma question : Est il dangereux d'utiliser une dll qui uses ShareMem dans une application qui ne le uses pas, si on n'utilise pas de fonctions avec des String ?
Le contexte est le suivant :
j'ai une application principale, et plusieurs autres qui doivent interagir avec cette première. Toutes ces applications sont actuellement en Delphi 7.
Pour avoir cette interaction, l'app principale fournit une dll, qui utilise ShareMem (de même que tous les app satellites).
L'une de ces app passant en C++ & Qt, il faut que je fasse quelques modifications pour que la dll soit compatible avec tout le monde (NB : les applications peuvent évoluer sur une machine indépendamment les unes des autres).
Mon idée est de rajouter des fonctions utilisant des PChar, en plus des String. De cette manière, tout la monde continue de fonctionner avec cette nouvelle dll.
Par exemple, ma dll ressemblera à ca :
Étant donné que les anciennes apps utilisent toujours les strings, ma dll doit uses-er SharMem, mais mon app C++ ne le uses-era forcement pas. Y a t'il un risque à cela ? C'est dur d'en être sûr en testant car les erreurs liées a SharMem n'apparaissent pas à tous les coups.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 procedure SetNumero(ANum: integer); stdcall;//inchangé compatible avec les 2 procedure SetAdresse(AAdresse: string); stdcall;//pour les anciennes apps procedure SetAdressePChar(AAdresse: PChar); stdcall;//pour la nouvelle app
Merci de votre éclairage.
Partager