C++ cli C++/CLI本机还是托管? 我有一个C++项目,我需要一个C++本地代码来与C代码进行交互。为此,我使用C++ C++ CLI类包装器,它将调用C++类。 据我所知,如果C++类在声明后面有一个 REF>代码,它将被编译为托管代码。如果没有,它将被编译为本机代码

C++ cli C++/CLI本机还是托管? 我有一个C++项目,我需要一个C++本地代码来与C代码进行交互。为此,我使用C++ C++ CLI类包装器,它将调用C++类。 据我所知,如果C++类在声明后面有一个 REF>代码,它将被编译为托管代码。如果没有,它将被编译为本机代码,c++-cli,mixed-mode,C++ Cli,Mixed Mode,这个假设正确吗?还是我需要给编译器进一步的指令来确保我的类是本机代码 据我了解,如果C++类在声明后面有一个REF,它将被编译为托管代码。 对引用类类型 如果没有,它将被编译为本机代码 不对。如果/clr有效(例如未被#pragma unmanaged禁用),则编译器仅生成MSIL(Microsoft中间语言,用于.NET的字节码) 据我了解,如果C++类在声明后面有一个REF,它将被编译为托管代码。 对引用类类型 如果没有,它将被编译为本机代码 不对。如果 /CLR 有效(例如,未被代码禁用)

这个假设正确吗?还是我需要给编译器进一步的指令来确保我的类是本机代码

据我了解,如果C++类在声明后面有一个REF,它将被编译为托管代码。

对<如果没有
/clr
,则无法编译代码>引用类类型

如果没有,它将被编译为本机代码

不对。如果
/clr
有效(例如未被
#pragma unmanaged
禁用),则编译器仅生成MSIL(Microsoft中间语言,用于.NET的字节码)

据我了解,如果C++类在声明后面有一个REF,它将被编译为托管代码。

对<如果没有
/clr
,则无法编译代码>引用类类型

如果没有,它将被编译为本机代码


不对。如果<代码> /CLR 有效(例如,未被代码禁用),则编译器只生成MSIL(微软中间语言,.NET的字节码)。

“如果C++类有一个引用,它将被编译为托管代码”——不确定。c++/CLI
ref类可以包含本机类型和CLI类型。e、 g.一个
ref类
,其中有一个
void*
指针。有人会指出为什么1的投票会让C++程序员们恼怒,强调“如何删除我应该知道的那个词?这不是C++问题”。在C++中没有“代码>参考文献>代码。我用标题和标记C++ +CLI提问,所以它覆盖了两种语言,而ReF修饰符会读到这篇文章,谢谢@ Micky。“如果C++类有一个引用,它将被编译为托管代码”——不确定。C++类/代码< > REF类< /C>可以包含本地和CLI类型。例如,<代码> REF类< /code >中有一个<代码> Value*/code >指针。有人指出为什么1 -投票?可以是愤怒的C++程序员强调“我该怎么知道这个咒骂词被删除了?这不是C++问题。“C++中没有代码<代码>参考代码>。我用标题和标签C++ +CLI问了一个问题,所以它覆盖了两种语言,而ReF MuffiRI会阅读文章,谢谢@ MICKY,但是我从里面调用C++库…我假设如果代码能够与本机库交互,那么它应该是本机的。。。所以我猜MSIL正在包装这些函数调用?“如果/clr有效…那么编译器只生成MSIL”-你是说/clr:pure?大多数简单操作都有MSIL版本。虽然效率不高,但仍能正常工作。@Micky:本机(非MSIL)机器代码有两种可能的来源,它们会导致生成混合模式程序集:项目中的代码和链接到中的静态库。虽然我知道编译器即使使用
/clr
也会生成本机代码,但使用
/clr:pure
更多的是控制链接,而不是代码生成。@mFeinstein:通过直接内存操作,与使用C代码中的指针和<代码> /不安全< /代码>差不多,但我从里面调用C++库…我假设如果代码能够与本机库交互,那么它应该是本机的。。。所以我猜MSIL正在包装这些函数调用?“如果/clr有效…那么编译器只生成MSIL”-你是说/clr:pure?大多数简单操作都有MSIL版本。虽然效率不高,但仍能正常工作。@Micky:本机(非MSIL)机器代码有两种可能的来源,它们会导致生成混合模式程序集:项目中的代码和链接到中的静态库。虽然我知道有少数情况下编译器甚至使用
/clr
生成本机代码,但使用
/clr:pure
更多的是控制链接,而不是代码生成。@mFeinstein:通过直接内存操作,与使用C#with
/safe