Tous les paramètres P/Invoke booléens et les types de retour doivent être explicitement marqués avec l'attribut MarshalAs. ...

Tous les paramètres P/Invoke booléens et les types de retour doivent être explicitement marqués avec l'attribut MarshalAs. Par défaut, le système marshalera tous les types booléens comme UnmanagedType.Bool sur 4 octets. Il s'agit du comportement correct pour les arguments 'BOOL' Win32, mais incorrect pour les arguments 'bool' C++, lesquels doivent être marshalés comme UnmanagedType.U1 sur 1 octet. Dans un souci de maintenabilité du code, spécifiez toujours explicitement les informations de marshaling des arguments booléens et des valeurs de retour.