Le paramètre d'interface Delphi est à présent géré différemment
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 :