Alle booleschen P/Invoke-Parameter und -Rückgabetypen müssen explizit mit dem MarshalAs-Attribut markiert werden. Standardmäßig ...

Alle booleschen P/Invoke-Parameter und -Rückgabetypen müssen explizit mit dem MarshalAs-Attribut markiert werden. Standardmäßig werden alle booleschen Werte vom System als UnmanagedType.Bool mit 4 Bytes gemarshallt. Dieses Verhalten ist korrekt für BOOL-Argumente für Win32, jedoch falsch für bool-Argumente für C++, die als UnmanagedType.U1 mit 1 Byte gemarshallt werden müssen. Geben Sie aus Codewartbarkeitsgründen immer die Marshallinformationen für boolesche Argumente und Rückgabewerte an.