perdon, me falto colocar byte* datos en vez de byte datos<br><br>
<div class="gmail_quote">El 3 de septiembre de 2010 13:39, Adolfo Cárdenas <span dir="ltr"><<a href="mailto:adocardenas@gmail.com">adocardenas@gmail.com</a>></span> escribió:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>Muchas gracias, está funcionando perfecto.</div>
<div> </div>
<div>(Pongo las funcion de archivo mezclada con las de ventana sólo para mostrar el resumen.):</div>
<div> </div>
<div>#include <windows.h></div>
<div>//-------------------ARCHIVO-------------------</div>
<div>#include <io.h><br>#include <fcntl.h><br>#include <sys\stat.h><br>#include <stdio.h></div>
<div>typedef unsigned char byte;</div>
<div>
<div>//-----------------------------------------------------</div>
<div> </div></div>
<div>
<div>int MostrarArchivoUnicode(HDC hdc, char* archivo, int nbytes)   // Muestra nbytes del archivo.</div></div>
<div>{</div>
<div>   LOGFONT logfuente;<br>   HFONT fuente,fuenteant;<br>   </div></blockquote>
<div>//perdon, me falto colocar byte* datos en vez de byte datos</div>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>//   byte datos; </div></blockquote>
<div>byte* datos;</div>
<div> </div>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>
<div>
<div>   datos = new byte[nbytes];</div></div>
<div>   </div></div>
<div>   //-----------------ARCHIVO---------------------------</div>
<div>   int h, bytes;</div>
<div>   </div>
<div>   if((h = open(archivo, O_RDONLY|O_BINARY)) == -1) return -1;<br>   else   {<br>      lseek(h, 0L, SEEK_SET);</div>
<div>
<div>      if((bytes = read(h, datos, nbytes)) == -1) return -2;<br>      close(h);<br>    }</div></div>
<div> </div>
<div>   //------------------------VENTANA----------------------</div>
<div>   logfuente.lfStrikeOut = 0;<br>   logfuente.lfUnderline = 0;<br>   logfuente.lfHeight = 18;<br>   logfuente.lfEscapement = 0;<br>   logfuente.lfItalic = FALSE;<br>   logfuente.lfCharSet=CHINESEBIG5_CHARSET;        //  Importante</div>

<div>   strcpy(logfuente.lfFaceName,"MingLiu");                  //  Importante</div>
<div>   logfuente.lfWeight=1;</div>
<div> </div>
<div>   fuente = CreateFontIndirect(&logfuente);</div>
<div>   fuenteant=(HFONT)SelectObject(hdc, fuente);</div>
<div> </div>
<div>   TextOutW(hdc, 0, 0, (WCHAR*)datos, nbytes);</div>
<div> </div>
<div>   SelectObject(hdc, fuenteant);<br>   DeleteObject(fuente);       </div>
<div>   return bytes;</div>
<div>} </div>
<div> </div>
<div>//------------------LLAMADA-----------------------</div>
<div> </div>
<div>MostrarArchivoUnicode(hdc,"unicode.txt",60);</div>
<div> </div>
<div>//---------------------------------------------------------------------</div>
<div> </div>
<div>Los archivos unicode aveces tienen caracteres de varios idiomas. Pienso que debo leer los bytes y variar el lfCharSet y el lfFaceName de acuerdo al rango del valor de los bytes y seleccionar la fuente cada vez que los bytes tengan un rango diferente. ¿Hay otra forma?Gracias.</div>
</blockquote></div><br>