Я разрабатываю приложение Windows Phone 8, и мне нужно передать массив байтов из фонового агента в приложение foreground.
Для этого я пишу интерфейс в C++/CX, который будет реализован на С# и будет вызван фоновым процессом.
Интерфейс объявлен как:
public interface class IStatusListener
{
void OnNewData(byte data[], int length);
};
Но я получаю ошибку, как
"подпись открытого элемента содержит собственный тип 'byte []'"
Как объявить массив байтов здесь?
Решила его, переписав интерфейс:
public interface class IStatusListener
{
void OnNewData(Platform::Array<byte>^* data);
};
Ваши общедоступные классы 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
};