和 C# 一样,int 是 System::Int32 的别名,它是一个 CLR 类型。有没有办法可以使用本机“int”,这意味着标准 C++ 中的 int?
问问题
1018 次
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
关闭)。
然后,您可以在另一个文件中编写托管代码(使用/clr
on 编译)并调用本机代码。
于 2014-11-27T13:02:28.533 回答
-1
它们是一样的,继续在int
任何你想要原生类型的地方使用。
于 2013-03-07T06:28:21.767 回答