Avertissement du compilateur (niveau 4) C4564

méthode 'method' de la classe 'class' définit le paramètre par défaut non pris en charge 'parameter'

Le compilateur a détecté une méthode avec un ou plusieurs paramètres avec des valeurs par défaut. La ou les valeurs par défaut des paramètres sont ignorées lorsque la méthode est appelée ; spécifiez explicitement des valeurs pour ces paramètres. Si vous ne spécifiez pas explicitement de valeurs pour ces paramètres, le compilateur C++ génère une erreur.

Étant donné que la .dll suivante a été créée avec Visual Basic, ce qui autorise les paramètres par défaut sur les arguments de méthode :

' C4564.vb
' compile with: vbc /t:library C4564.vb
Public class TestClass
   Public Sub MyMethod (a as Integer, _
                        Optional c as Integer=1)
   End Sub
End class

Et l’exemple C++ suivant qui utilise .dll créé avec Visual Basic,

// C4564.cpp
// compile with: /clr /W4 /WX
#using <C4564.dll>

int main() {
   TestClass ^ myx = gcnew TestClass();   // C4564
   myx->MyMethod(9);
   // try the following line instead, to avoid an error
   // myx->MyMethod(9, 1);
}