lambda 强制转换支持 stdcall 函数指针

时间:2022-11-16 19:33:27
auto enumFunc = [] (HWND hwnd, LPARAM lparam) {  
        wstring sbuf(1024,L'\0');
        if(GetWindowText(hwnd, &sbuf[0], 1024)>0)
        {
            MessageBox(0,sbuf.c_str(),L"enum",0);
        }
        return TRUE;  
    };
    EnumWindows(static_cast<BOOL (__stdcall *)(HWND,LPARAM)>(enumFunc)
        , 0); 

[&](){} 这样的引用只能 是cdcel调用,不能转为stdcall