Le paramètre d'interface Delphi est à présent géré différemment

De RAD Studio
Aller à : navigation, rechercher

Remonter à Interfaces Delphi


Un paramètre d'interface Delphi avec la valeur par défaut nil est géré différemment depuis la release C++Builder 2010. L'affectation du type void * à une interface Delphi échoue maintenant à la compilation.

Le compilateur Delphi (DCC32) générait le code suivant dans le fichier .hpp quand un paramètre d'interface avait la valeur par défaut nil :

  void methodName(_di_IIntf param = (void *)(0x0));

Le compilateur C++ acceptait auparavant cette syntaxe incorrecte. Depuis la release 2010, les compilateurs Delphi et C++ gèrent ce cas de manière différente.

Le compilateur Delphi émet maintenant le code suivant dans le fichier .hpp pour un paramètre d'interface ayant la valeur par défaut nil :

  void methodName(_di_IIntf param = _di_IIntf());

Le compilateur C++ génère maintenant une erreur pour le code qui assigne le type void * à une interface Delphi. Par exemple, la ligne :

échoue maintenant à la compilation, en émettant l'erreur :

  Cannot convert 'void *' to '_di_IIntf'M

Si votre code Delphi contient un paramètre d'interface avec la valeur par défaut nil, recompilez-le avec DCC32. Si vous ne disposez pas du source, éditez le fichier .hpp et modifiez toutes les occurrences de :

en :

Voir aussi