【问题标题】:How can I compile some parts of C++/CLI code as Native and some part as Managed?如何将 C++/CLI 代码的某些部分编译为 Native,而将某些部分编译为 Managed?
【发布时间】:2011-03-01 01:19:00
【问题描述】:

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

我需要托管和非托管(本机)的哪一部分分别编译为托管和本机?

【问题讨论】:

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


    【解决方案1】:

    #pragma managed

    更喜欢使用#pragma managed 和push 和on/off,然后pop,#pragma unmanaged 实际上没什么用。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-03
        • 2015-01-21
        • 1970-01-01
        • 2019-03-06
        • 2012-04-13
        • 1970-01-01
        相关资源
        最近更新 更多