对C++/CX中成员函数的引用

Reference to member function in C++/CX

本文关键字:函数 引用 成员 C++ CX      更新时间:2023-10-16

我正在尝试制作一个计时器,以预设的间隔调用函数。这是我目前掌握的代码。

void MainPage::startTimer()
{
    DispatcherTimer^ refreshTimer = ref new DispatcherTimer;
    refreshTimer->Tick += ref new Windows::Foundation::EventHandler<Platform::Object^>(this, &MainPage::refreshFunc);
    TimeSpan t;
    t.Duration = 500;
    refreshTimer->Interval = t;
    refreshTimer->Start();
}
void MainPage::refreshFunc(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
    ...
}

当我试图编译时,我得到一个错误,上面写着:

invalid delegate initializer -- function does not match the delegate type

错误指向此行(上面第4行)中EventHandler的第二个参数:

refreshTimer->Tick += ref new Windows::Foundation::EventHandler<Platform::Object^>(this, &MainPage::refreshFunc);

我在这里做错了什么?

我使用C++/CX并使用VS2015 Community 编译

将第二个参数的类型更改为Platform::Object^:

void MainPage::refreshFunc(Platform::Object^ sender, Platform::Object^ e)