[C con Clase] Curso WINAPI. DialogBox con texto.

marcelinux marcelinator en gmail.com
Mie Oct 18 14:42:11 CEST 2017


Hola. Estoy en http://winapi.conclase.net/curso/index.php?cap=007b#inicio
Tengo alguna dificultad con el valor inicial.
Aparte del warning de aviso de la "inseguridad" de strcpy, al compilar me muestra el siguiente error:
error C2664: 'SetDlgItemTextW' : no se puede convertir el parámetro 3 de 'char [80]' a 'LPCWSTR'
Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función

Utilizo VisualStudio 2008.
Si cambio:
SetDlgItemText(hDlg, ID_TEXTO, Datos->Texto);
por:
SetDlgItemTextW(hDlg, ID_TEXTO, reinterpret_cast<LPWSTR>(&Datos->Texto));
El control EDIT no me muestra "Inicial" como valor. En su lugar me muestra el símbolo "pipe".
Por Debug, veo que Datos->Texto contiene "Inicial" pero con dos "bytes" por carácter.
Sin embargo, usando reinterpret_cast, tras GetDlgItemText(hDlg, ID_TEXTO, reinterpret_cast<LPWSTR>(&Datos->Texto), 80);
el valor del control es correcto.
¿Alguna pista para asignar el valor inicial?
Gracias.


Más información sobre la lista de distribución Cconclase