我已经在C ++ / CLI中阅读了关于.NET编程的documentation,并且从较高层面了解它可以将C或C ++编译为.NET MSIL。我也理解在这个过程中翻译了原生结构。
问题是,我可以使用C ++ / CLI将C / C ++代码库编译成.NET可移植类库吗?目的是在各种平台上使用结果,例如: Xamarin平台和UWP。
编辑:对于普通的C而不是C ++,这样做更容易吗?
答案 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。