可以使用C ++ / CLI将C / C ++程序编译到.NET可移植类库中

时间:2016-08-21 15:00:34

标签: c++-cli portable-class-library cil

我已经在C ++ / CLI中阅读了关于.NET编程的documentation,并且从较高层面了解它可以将C或C ++编译为.NET MSIL。我也理解在这个过程中翻译了原生结构。

问题是,我可以使用C ++ / CLI将C / C ++代码库编译成.NET可移植类库吗?目的是在各种平台上使用结果,例如: Xamarin平台和UWP。

编辑:对于普通的C而不是C ++,这样做更容易吗?

1 个答案:

答案 0 :(得分:0)

简答:AFAIK no。

答案很长:

据我所知,C ++ / CLI源代码是以“混合”模式编译的。这意味着如果您学习C ++ / CLI语言并使用它创建托管类,它们本身就可以在.NET中运行。非常好。但是,如果您只是使用现有的C ++代码并对其进行编译,那么结果就是本机x86 / Windows代码,这些代码无法在其他平台上使用。它被称为“混合”,因为编译器将本机和.NET IL代码放在一起构成单个可执行文件。

C ++ / CLI通常用于您想要使用现有C ++代码的情况 作为Windows中.NET程序的一部分。因此,您使用C ++ / CLI创建库,并在托管C ++ / CLI中为其创建接口。这个托管的C ++ / CLI接口是本机C ++代码与.NET中其余程序之间的桥梁。

另据我所知,CoreCLR通常不支持C ++ / CLI。