当我尝试在 MinGW 4.6.2 上编译以下内容时
EnumChildWindows(hwnd, [](HWND, LPARAM) -> BOOL { return TRUE; }, 0);
我明白了
error: cannot convert '<lambda(HWND, LPARAM)>'
to 'ENUMWINDOWSPROC {aka int (*)(HWND__*,long int)}'
for argument '2' to 'BOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM)'
我是否错误地声明了 lambda,或者这根本不起作用?回调的 MS 定义是
BOOL CALLBACK EnumChildProc(
__in HWND hwnd,
__in LPARAM lParam
);
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633493%28v=vs.85%29.aspx
调用约定是否导致问题?