Как передать пользовательские типы WinRT в методах от c # до c ++ компонентов среды выполнения Windows?

Я пытаюсь передать простой класс C ++, созданный в C #, через метод к моему Win ++ C ++ компоненту, но я не могу понять, как это сделать, и если это вообще возможно.

Я создал этот пользовательский класс в C ++
(от https://msdn.microsoft.com/en-us/library/hh441569.aspx)

namespace CppComponent
{
// Custom struct
public value struct PlayerData
{
Platform::String^ Name;
int Number;
double ScoringAverage;
};

public ref class Player sealed
{
private:
PlayerData m_player;
public:
property PlayerData PlayerStats
{
PlayerData get(){ return m_player; }
void set(PlayerData data) {m_player = data;}
}
};
}

Я могу создать его в C # и играть с ним, так что это работает.
Я также могу использовать другие методы, которые возвращают int или Platform :: String.

Но как я могу использовать его в методах, которым нравится c ++? (и как тип возврата)

in .cpp file:
Platform::String^ CppComponent::DoSomething(Platform::String^ input, Player  myCustomClass)
{

in .h file:
Platform::String^ DoSomething(Platform::String^ input, Player myCustomClass);

Любая идея, как получить «Player myCustomClass» правильно?

PS: работает над https://github.com/cmusphinx/pocketsphinx-wp-demo

-1

Решение

Оказывается, я был уже близко.

Я поместил de struct и class в мой файл .h и использовал Player ^ вместо Player, например:

Platform::String^ CppComponent::DoSomething(Platform::String^ input, Player^ myCustomClass)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]