Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"konstrukcja": atrybuty niespójne z poprzednią deklaracją
Uwagi
Atrybuty, które są stosowane do definicji, powodują konflikt z atrybutami, które są stosowane do deklaracji.
Jednym ze sposobów rozwiązania C3163 jest wyeliminowanie atrybutów w deklaracji przekazywania. Wszystkie atrybuty w deklaracji przesyłania dalej powinny być mniejsze niż atrybuty definicji lub, co najwyżej, równe.
Możliwą przyczyną błędu C3163 jest język adnotacji kodu źródłowego firmy Microsoft (SAL). Makra SAL nie rozszerzają się, chyba że skompilujesz projekt przy użyciu flagi /analyze . Program, który kompiluje się czysto bez /analyze , może zgłosić C3163, jeśli spróbujesz ponownie skompilować go z opcją /analyze . Aby uzyskać więcej informacji na temat sal, zobacz Adnotacje SAL.
Przykład
Poniższy przykład generuje kod C3163.
// C3163.cpp
// compile with: /clr /c
using namespace System;
[CLSCompliant(true)] void f();
[CLSCompliant(false)] void f() {} // C3163
// try the following line instead
// [CLSCompliant(true)] void f() {}