微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C++/WinRT:静态事件

如何解决C++/WinRT:静态事件

我在 C++/WinRT UWP 应用程序中创建静态事件时遇到问题。删除 static 关键字后,以下代码编译成功。

// MainPage.idl
static event Windows.Foundation.EventHandler<Int32> MyEvent;

// MainPage.h
static event_token MyEvent(Windows::Foundation::EventHandler<int32_t> const&);
static void MyEvent(event_token const&);

private:
static event<Windows::Foundation::EventHandler<int32_t> > m_myEvent;

// MainPage.cpp
event_token MainPage::MyEvent(EventHandler<int32_t> const& handler)
{
    return m_myEvent.add(handler);
}

void MainPage::MyEvent(event_token const& token)
{
    m_myEvent.remove(token);
}

但是,使用 static 会抛出这些错误

enter image description here

输出日志:

1>MainPage.obj : error LNK2001: unresolved external symbol "private: static struct winrt::event winrt::XSTATIC::implementation::MainPage::m_myEvent " (?m_myEvent@MainPage@implementation@XSTATIC@winrt@@0U?$event@U?$EventHandler@H@Foundation@Windows@winrt@@@4@A)

在 C++/WinRT 中甚至可能出现静态事件吗?我如何正确创作它们?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。