Есть ли способ вызвать внутренний метод с собственным параметром из класса ref в другом компоненте C++/CX WinRT? Я знаю, что есть решение с помощью указателей, открытых как int, но есть ли лучший способ? Кое-что нравится включать заголовочные файлы из другой библиотеки и не использовать управляемую ссылку (так я получил сообщение об ошибке с C# Component3 «ошибка CS0433: тип« Class1 »существует как в« Component1 », так и« Component2 »» в другом компоненте, который потребляет эти оба) ...Как вызвать внутренний метод из класса ref в другом компоненте C++/CX WinRT?
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();
}
Довольно маловероятно, чтобы получить компилятор C# при компиляции кода C++/CX. Этот вопрос не имеет большого смысла. – IInspectable
Эта ошибка C# относится к компоненту 3, который ссылается на компоненты C++/CX WinRT 1 и 2. Что конкретно не имеет смысла? – wallycz
Я только вижу код для 1 класса. –