Я пытаюсь передать простой класс 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
Оказывается, я был уже близко.
Я поместил de struct и class в мой файл .h и использовал Player ^ вместо Player, например:
Platform::String^ CppComponent::DoSomething(Platform::String^ input, Player^ myCustomClass)
Других решений пока нет …