Объявление массива байтов в качестве открытого члена

1

Я разрабатываю приложение Windows Phone 8, и мне нужно передать массив байтов из фонового агента в приложение foreground.

Для этого я пишу интерфейс в C++/CX, который будет реализован на С# и будет вызван фоновым процессом.

Интерфейс объявлен как:

public interface class IStatusListener
{
   void OnNewData(byte data[], int length);
};

Но я получаю ошибку, как

"подпись открытого элемента содержит собственный тип 'byte []'"

Как объявить массив байтов здесь?

Теги:
c++-cx
windows-phone-8

2 ответа

1
Лучший ответ

Решила его, переписав интерфейс:

public interface class IStatusListener
{
   void OnNewData(Platform::Array<byte>^* data);
};
0

Ваши общедоступные классы WinRT не могут использовать типы non-RT в своей публичной подписке. Это то, что люди сталкиваются очень часто, когда начинают писать компоненты WinRT. Например, см. Код ниже.

class Native { };

public ref class MyRef sealed
{
private:
        voidFoo1(Native n) { } // <--This is fine

public:
        voidFoo2(Native n) { } // <--This won't compile
};
  • 0
    Я вижу, но ваш ответ не определяет обходной путь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню