Es posible hacer lo que usted describe. No necesita hacer nada para crear un mensaje personalizado para la comunicación dentro de su aplicación: simplemente asegúrese de que el código que envía el mensaje y el código que recibe el mensaje coinciden en cuál es realmente el número de mensaje, y use un mensaje. número que no se superpone con ninguno de los números que usa Windows. Hay una función RegisterWindowMessage(), pero eso solo es necesario para obtener un número de mensaje único en todo el sistema operativo, por lo que se usa para la comunicación entre procesos.
La forma más sencilla de lograrlo es tener sólo un archivo de cabecera en alguna parte que contiene los números de mensajes personalizados, a partir de WM_USER y numeración hacia arriba, así:
#define WM_FIRST_CUSTOM_MSG (WM_USER+0)
#define WM_SECOND_CUSTOM_MSG (WM_USER+1)
Los tipos wParam y lParam se definen cuando se incluye "windows.h", por lo que puede tener diferentes tipos en diferentes sistemas. Para sistemas operativos de 32 bits, ambos son generalmente enteros de 32 bits. Si solo está usando el mensaje para fines de prueba, por lo general es lo suficientemente bueno, y puede guardar lo que quiera allí. Para el código de producción, sin embargo, debe tener más cuidado: WPARAM es realmente para datos "enteros" y LPARAM para datos "tipo puntero". En Win64, por ejemplo, LPARAM es lo suficientemente largo como para contener un puntero de 64 bits, pero WPARAM solo contiene un entero de 32 bits. Para pasar más datos que solo un entero y un puntero, usaría lParam para pasar un puntero a algún tipo de estructura que contenga todos mis argumentos.
Habiendo dicho todo eso, parece una forma complicada de obtener resultados de depuración. ¿Has intentado utilizar la llamada API OutputDebugString()? ¿O eliminando errores de la llamada printf() del hilo?
Un MessageBox no funciona para usted en esta situación? ¿Estás usando MFC? – Klathzazt
No es una opción. Habrá un montón de "strings" – Geo