Problema de asignación de variables de función de devolución de llamada de VC2010 EnumWindows
CString text;
int len=::GetWindowTextLength (hwnd);//Obtiene la longitud del título de la ventana al que apunta el identificador de ventana hwnd
::GetWindowText (hwnd,( LPWSTR)(LPCTSTR)text, len+1);//Obtener el título de la ventana señalado por el identificador de ventana hwnd
Estas tres líneas son incorrectas y violan las reglas de acceso a la memoria.
Su texto está vacío y se producirá un error si accede directamente a su memoria. Incluso si no se informa ningún error, es una casualidad.
Se recomienda utilizar una matriz de cadenas directamente y abrir la memoria dinámicamente.
En cuanto al siguiente código, no es necesario leer demasiado.