C++错误:类型参数与类型参数不兼容

问题描述 投票:0回答:0

我正在为我的用例修改 C++ MFC 应用程序。我想使用

CreateTimerQueueTimer
API 来添加计时器。在cpp文件中,我创建了定时器队列并定义了回调函数。在头文件中,我声明了回调函数。但是,我收到以下错误,告诉我类型参数不兼容。

argument of type "void(__stdcall CPCANBasicExampleDlg::")(PVOID IpParameter, BOOLEAN TimerOrWaitFired)" is incompatible with parameter of type "WAITORTIMERCALLBACK"

PCANBasicExampleDlg.h

// PCANBasicExampleDlg dialog
class CPCANBasicExampleDlg : public CDialog
{
  ...
  private:
    ...
    void InitializeProtection();
    void FinalizeProtection();
    void CALLBACK TimerCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired);
}

PCANBasicExampleDlg.cpp

void CPCANBasicExampleDlg::InitializeControls(void)
{
    ...
    HANDLE hTimer;
    HANDLE hTimerQueue = CreateTimerQueue();

    // Set up the timer to fire every 1 second
    if (!CreateTimerQueueTimer(&hTimer, hTimerQueue, TimerCallback, NULL, 0, 1000, 0)) {
        TRACE("CreateTimerQueueTimer failed : \r\n, ");
    } 
}

// Timer callback function
VOID CALLBACK CPCANBasicExampleDlg::TimerCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired) {
    TRACE("Timer fired! \r\n, ");
    InitializePictureControl();
}

你能告诉我问题是什么以及如何更改代码来修复错误吗?

c++ mfc
© www.soinside.com 2019 - 2024. All rights reserved.