编译器错误 C2346
'function' 无法编译为原生:原因
编译器无法将函数编译为 MSIL。
有关详细信息,请参阅托管、非托管和 /clr(公共语言运行时编译)。
更正此错误
移除函数中无法编译为 MSIL 的代码。
要么不使用 /clr 编译模块,要么使用非托管 pragma 将函数标记为非托管。
示例
以下示例生成 C2346。
// C2346.cpp
// processor: x86
// compile with: /clr
// C2346 expected
struct S
{
S()
{
{ __asm { nop } }
}
virtual __clrcall ~S() { }
};
int main()
{
S s;
}