如何将C ++ / CLI代码的某些部分编译为Native,将某些部分编译为Managed?

时间:2010-06-08 08:14:23

标签: interop c++-cli mixed-mode

我正在调用LoadTypeLib来在C ++ / CLI中加载非托管类型库。我需要将一些代码区域编译为托管,将一些代码区域编译为非托管(本机),并将混合模式类库编译为可执行文件。

我需要管理哪些部分和非托管(本机)以分别编译为托管和本机?

2 个答案:

答案 0 :(得分:3)

#pragma managed

首选使用#pragma managed按下和开/关,然后弹出,#pragma unmanaged实际上是没用的。

答案 1 :(得分:1)

不要使用#pragma managed - 它被认为是“邪恶的”,可能会导致DLL初始化/关闭问题。

我建议将某些文件显式编译为托管(/ clr),有些文件编译为native(无/ clr)。您还可以有两个预编译的标题 - 一个用于托管,一个用于本机。