C++のラムダがCのコールバックにつかえる
ためしにやったら動いた。さすがC++。
#include <Windows.h> #include <iostream> int main() { HWINSTA sta = GetProcessWindowStation(); EnumDesktops( sta, [](LPTSTR desktop, LPARAM lp)->BOOL { std::cout << desktop << std::endl; return TRUE; }, 0); }
Win32は列挙系でコールバックを使うことが多いので、シンプルに書けてすごく助かる。
#include <Windows.h> #include <iostream> int main() { EnumDisplayMonitors( NULL, NULL, [](HMONITOR mon, HDC dc, LPRECT rc, LPARAM lp)->BOOL { std::cout << rc->left << ", " << rc->top << ", " << rc->right << ", " << rc->bottom << std::endl; return TRUE; }, 0 ); }