Re: Лямбду в WinAPI
От: alexeiz  
Дата: 28.03.11 07:33
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте.


С>А можно как нибудь заставить работать такое:


С>
С>HWND FindApplicationWindow()
С>{
С>    HWND foundHWnd = 0;
С>    DWORD procID = GetCurrentProcessId();
С>    EnumWindows([&foundHWnd,&procID](HWND hWnd, LPARAM lParam) -> BOOL
С>    {
С>        /*
С>         ********************************************
С>         */
С>        return TRUE;
С>    },
С>    0);
С>}
С>


С>

С>error C2664: 'EnumWindows' : cannot convert parameter 1 from '`anonymous-namespace'::<lambda0>' to 'WNDENUMPROC'


Убери capture parameters [&foundHWnd, &procID], и тогда будет работать. Например:
typedef int (*func)(int);

int foo(func f)
{
    return f(10);
}

int main()
{
    return foo([](int a) { return 2 * a; });
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.