4

和 C# 一样,int 是 System::Int32 的别名,它是一个 CLR 类型。有没有办法可以使用本机“int”,这意味着标准 C++ 中的 int?

4

3 回答 3

3

C++/CLI 原始类型具有双重身份。类型关键字匹配本机 C++ 类型CLR 类型,具体取决于上下文。并且具有本机类型的变量继承了 CLR 类型上可用的方法,例如ToString.

我认为这篇解释本机类型和托管类型之间关系的博客文章非常有帮助:http: //blogs.msdn.com/b/branbray/archive/2005/07/20/441099.aspx

于 2013-03-07T06:34:38.427 回答
1

我认为接受的答案不能回答 OP 的问题。

如果/clr编译器开关打开,则int关键字表示System::Int32,它不是本机的。
如果/clr编译器开关关闭,则int关键字表示本机 C/C++ int,它不受管理。

使用System::Int32意味着对原生的显着性能损失int(您可以衡量它)。

您可以关闭每个文件的/clr编译器开关。.cpp它不是一个项目选项,它是一个翻译单元(.cpp 文件)选项。
右键单击文件,然后单击属性等...

因此,您可以在文件中编写一些本机代码.cpp(编译时/clr关闭)。
然后,您可以在另一个文件中编写托管代码(使用/clron 编译)并调用本机代码。

于 2014-11-27T13:02:28.533 回答
-1

它们是一样的,继续在int任何你想要原生类型的地方使用。

于 2013-03-07T06:28:21.767 回答