<div dir="ltr">Hola Marcelinux,<div class="gmail_extra"><br></div><div class="gmail_extra">Estás mezclando ASCII (CHAR o char) con Unicode (WCHAR o wchar_t). Hoy por hoy, deberías usar Unicode, por lo que aconsejo que cambies la representación del miembro, 'Texto'. Esto es,</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">typedef struct stDatos {</div><div class="gmail_extra">   WCHAR Texto[80];  // equivale a:  wchar_t Texto[80]</div><div class="gmail_extra">} DATOS;</div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Esto implica que tendrás que usar otras funciones para manipular cadenas de caracteres de tipo 'wchar_t'; por ejemplo, usa 'wcscpy()'</div><div class="gmail_extra"><br></div><div class="gmail_extra">Por último y para aclarar, las invocaciones que hiciste no son correctas. Escribiste:<br><br><span style="font-size:12.8px">reinterpret_cast<LPWSTR>(&</span><wbr style="font-size:12.8px"><span style="font-size:12.8px">Datos->Texto)</span><br></div><div class="gmail_extra"><span style="font-size:12.8px"><br></span></div><div class="gmail_extra"><span style="font-size:12.8px">El tipo del miembro, 'Texto', ya es un puntero, por lo que obtendrías un doble puntero; sin embargo, esto no es lo que quieres. Gramaticalmente, la expresión correcta debería ser:</span><br><br><span style="font-size:12.8px">reinterpret_cast<LPWSTR>(Datos->Texto)</span><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Claro está, esto no es correcto en este caso, porque la representación de caracteres usando 'char' es diferente que la de 'wchar_t'.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Espero que esto aclare las dudas.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Steven</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-10-18 8:42 GMT-04:00 marcelinux <span dir="ltr"><<a href="mailto:marcelinator@gmail.com" target="_blank">marcelinator@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hola. Estoy en <a href="http://winapi.conclase.net/curso/index.php?cap=007b#inicio" rel="noreferrer" target="_blank">http://winapi.conclase.net/<wbr>curso/index.php?cap=007b#<wbr>inicio</a><br>
Tengo alguna dificultad con el valor inicial.<br>
Aparte del warning de aviso de la "inseguridad" de strcpy, al compilar me muestra el siguiente error:<br>
error C2664: 'SetDlgItemTextW' : no se puede convertir el parámetro 3 de 'char [80]' a 'LPCWSTR'<br>
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<br>
<br>
Utilizo VisualStudio 2008.<br>
Si cambio:<br>
SetDlgItemText(hDlg, ID_TEXTO, Datos->Texto);<br>
por:<br>
SetDlgItemTextW(hDlg, ID_TEXTO, reinterpret_cast<LPWSTR>(&<wbr>Datos->Texto));<br>
El control EDIT no me muestra "Inicial" como valor. En su lugar me muestra el símbolo "pipe".<br>
Por Debug, veo que Datos->Texto contiene "Inicial" pero con dos "bytes" por carácter.<br>
Sin embargo, usando reinterpret_cast, tras GetDlgItemText(hDlg, ID_TEXTO, reinterpret_cast<LPWSTR>(&<wbr>Datos->Texto), 80);<br>
el valor del control es correcto.<br>
¿Alguna pista para asignar el valor inicial?<br>
Gracias.<br></blockquote></div></div></div>