3

C# で使用するネイティブ C++ クラス用の C++ CLI ラッパーの作成について質問があります。

コード例を次に示します。

#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# で表示されるのは望ましくありません。どうすれば非表示にできますか?

4

1 に答える 1