Поделиться через


Ошибка компилятора C2346

Функция не может быть скомпилирована как собственная: причина

Компилятору не удалось скомпилировать функцию в MSIL.

Дополнительные сведения см. в статьях об управляемом, неуправляемом и /clr (компиляции clr (компиляция среды CLR).

Исправление ошибки

  1. Удалите код в функции, которая не может быть скомпилирована в MSIL.

  2. Не компилируйте модуль с помощью /clr или помечайте функцию как неуправляемую с неуправляемой pragma.

Пример

В следующем примере создается C2346.

// C2346.cpp
// processor: x86
// compile with: /clr
// C2346 expected
struct S
{
   S()
   {
      { __asm { nop } }
   }
   virtual __clrcall ~S() { }
};

int main()
{
   S s;
}