Компонент WinRT / C ++ не может добавить TypedEventHandler в событие DatagramSocket.MessageReceived - PullRequest
0 голосов
/ 05 мая 2020

В настоящее время я работаю над компонентом WinRT / C ++ (C ++ 17) (который будет использоваться с Javascript).

Я хочу разработать свой плагин для создания настраиваемого управления UDP.

Я реализую функции DatagramSocket, как в примерах, предоставленных Microsoft.

Когда я хочу подписаться на обработчик событий из DatagramSocket события MessageReceivedHandler, я не могу просто добавить свой TypedEventHandler (Я не могу создать TypedEventHandler), я получил следующую ошибку:

Erreur (active) E0289 aucune instance du constructeur "winrt :: Windows :: Foundation :: TypedEventHandler :: TypedEventHandler [avec TSender = winrt :: Windows :: Networking :: Sockets :: DatagramSocket, TArgs = winrt :: Windows :: Networking :: Sockets :: DatagramSocketMessageReceivedEventArgs] "не соответствуют список аргументов EchoPlugin C: \ DEV \ TEST \ test_plugin \ EchoPlugin \ BarcodeReader. cpp 42

Мой код:

IAsyncAction BarcodeReader::StartUdpListener() {
try
{
    m_clientDatagramSocket.MessageReceived({ this, &BarcodeReader::UdpListenerMessageReceived });

    co_await m_clientDatagramSocket.BindServiceNameAsync(L"11173");
}
catch (winrt::hresult_error const& ex)
{
    //Windows::Networking::Sockets::SocketErrorStatus webErrorStatus{ Windows::Networking::Sockets::SocketError::GetStatus(ex.to_abi()) };
}
}

void BarcodeReader::UdpListenerMessageReceived(DatagramSocket const& sender, DatagramSocketMessageReceivedEventArgs const& args)
{
UdpMessageReceivedEvent(this, "MESSAGE FROM EVENT");
}

Как я могу решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...