0

別の C++/CX WinRT コンポーネントの ref クラスからネイティブ パラメーターを使用して内部メソッドを呼び出す方法はありますか? int として公開されたポインターを介した解決策があることは知っていますが、より良い方法はありますか? マネージ参照を使用せずに、他のライブラリからヘッダー ファイルをインクルードするようなものです (このようにして、C# Component3 からエラー メッセージが表示されます。「エラー CS0433: タイプ 'Class1' が 'Component1' と 'Component2' の両方に存在します」というエラー メッセージが、これらを消費する他のコンポーネントに表示されます。両方)...

Component1/class1.h:

    public ref class Class1 sealed
    {
    internal:
        bool InternalMethodForComponent2(NativeType& param1);

    public:
        Class1();
        virtual ~Class1();

        int SomeMethodForComponent3();
    private:

    };

Component2/class2.cpp:

//#include "Component1/class1.h" - replaced by adding reference because of CS0433 in Component3

void Class2::SomeMethod(Class1^ obj)
{
    NativeType nt;
    nt.start = 1;

    ...

    obj->InternalMethodForComponent2(nt); //does not work - error C2039: 'InternalMethodForComponent2' : is not a member of 'Component1::Class1'
}

Component3/class3.cs:

void MethodInClass3()
{
    Class1 obj1 = new Class1();
    Class2 obj2 = new Class2();

    obj2.SomeMethod(obj1);
    var res = obj1.SomeMethodForComponent3();
}
4

1 に答える 1