別の 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();
}