C ++ CLI Wrapper

时间:2013-04-25 09:39:20

标签: c++-cli

我有一个关于为C#中使用的本机C ++类创建C ++ CLI Wrapper的问题。

以下是一个示例代码:

#include "stdafx.h"

#pragma once

using namespace System;

namespace Wrapper {

    class NativeClass
    {
    public:
        NativeClass() {}
        int Add(int a, int b)
        {
            return a+b;
        }
    };

    public ref class Wrapper
    {
    public:
        Wrapper() {pNative = new NativeClass();}
        int Add(int a, int b)
        {
            return(pNative->Add(a,b));
        }
        ~Wrapper()
        {
            delete pNative;
            pNative = 0;
        }
        !Wrapper()
        {
            this->~Wrapper();
        }
        //My problem is here.
        NativeClass* GetNative()
        {
            return pNative;
        }
    private:
        NativeClass* pNative;
    };
}

此代码工作正常。我需要检索引用本机类的指针,以便在其他包装类中使用它。但是,当我使用这个包装类时,我不希望函数“GetNative”在C#中可见。我怎么能隐藏它?

1 个答案:

答案 0 :(得分:1)

  

如果其他包装类位于同一个程序集中,请访问internal而不是public。 - 罗杰罗兰于2013年4月25日9:47

  

如果他们不在同一个集会中? ...

     

请看friend assemblies - 塞巴斯蒂安卡博特2月1日15:43