Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cli 在CPP/CLI中混淆本机和托管?_C++ Cli - Fatal编程技术网

C++ cli 在CPP/CLI中混淆本机和托管?

C++ cli 在CPP/CLI中混淆本机和托管?,c++-cli,C++ Cli,如果我使用/clr模式编译具有以下内容的代码: int x = 3; char ch='A'; int arr[]="Hi"; array<int>^ ManArr1={44}; array<int>^ ManArr2= gcnew array<int> {44}; intx=3; char ch='A'; int arr[]=“Hi”; 数组^ManArr1={44}; 数组^ManArr2=gcnew数组{44}; 我现在的问题是: 类型int是否映射

如果我使用/clr模式编译具有以下内容的代码:

int x = 3;
char ch='A';
int arr[]="Hi";
array<int>^ ManArr1={44};
array<int>^ ManArr2= gcnew array<int> {44};
intx=3;
char ch='A';
int arr[]=“Hi”;
数组^ManArr1={44};
数组^ManArr2=gcnew数组{44};
我现在的问题是: 类型
int
是否映射到
System::Int32
??那么
charch
呢?它们是本机类型还是托管类型?哪里将被处决!通过MSIL与否

我们看到
intarr[]
是一个本机数组,这是否意味着它将在MSIL之外执行

最后一个问题,对于托管阵列
ManArr1
ManArr2
两个初始化之间的区别是什么???

关于
“对于托管阵列ManArr1和ManArr2,两个初始化之间的区别是什么?”

没有功能上的区别,一个是另一个的缩写。

关于
“对于托管阵列ManArr1和ManArr2,两个初始化之间的区别是什么?”


没有功能上的区别,一个是另一个的缩写。

使用
/clr
编译时,除非使用
#pragma managed(off)
#pragma unmanaged

  • int
    相当于
    System::Int32
  • char
    相当于
    System::SByte
    (而不是
    System::char
    !)
  • 这两种类型都是“原始的”。托管代码将它们视为托管类型,而本机代码将它们视为本机类型
  • 本机数组将使用无法验证的MSIL(例如,与C#指针相同)

使用
/clr
编译时,除非使用
#pragma managed(off)
#pragma unmanaged

  • int
    相当于
    System::Int32
  • char
    相当于
    System::SByte
    (而不是
    System::char
    !)
  • 这两种类型都是“原始的”。托管代码将它们视为托管类型,而本机代码将它们视为本机类型
  • 本机数组将使用无法验证的MSIL(例如,与C#指针相同)