В настоящее время я работаю над компонентом 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");
}
Как я могу решить эту проблему?