Page 1 of 1

Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 4:21 pm
by hidroxid
Buenas

Usando Harbour 2.2 con FWh 12.02, una cadena con acentos pasada a un objeto de Windows se procesa correctamente, o sea, los acentos se visualizan correctamente en Windows.

Cambie a Harbour 3.2.0 (para hacer pruebsa0 y ahora los acentos en esas mismas cadenas no se visualizan bien, para hacerlo, debo convertirlas con AnsiToOem() antes de enviarlas al objeto de Windows.

La prueba la estoy realizando con el objeto Outlook.Application y el problema lo tengo tanto en el cSubject como en el cuerpo del correo.

¿Será que las librerias a utilizar para Harbour 3.2.0 al momento de linkar el ejecutable varían?

Gracias de antemano.

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 4:33 pm
by Antonio Linares
Puedes proporcionar un PRG de ejemplo para probarlo ?

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 5:10 pm
by hidroxid
Con mucho gusto.

Recuerda que debes tener el Microsoft Outlook instalado en el PC.

Code: Select all

#include "FiveWin.ch"

FUNCTION MAIN()
LOCAL oOutLook, oMail
LOCAL cSubject, oRecp

oOutLook := CreateObject( "Outlook.Application" )
oMail    := oOutlook:CreateItem( 0 )

cSubject := "Verificación de acentos"

oMail:Subject := cSubject
oMail:Body    := "Acentos en el cuerpo: áéíóú" + CRLF + CRLF + ;
                 "Harbour: " + Version()

// Remover para Harbour 3.2
// oMail:Subject := AnsiToOem( oMail:Subject )
// oMail:Body    := AnsiToOem( oMail:Body )

oRecp := oMail:Recipients:Add( "Nombre <correo@alguien.com>" )
oRecp:Type := 1
TRY
    oMail:display( .T. )
END

RETURN NIL
 
Captura con Harbour 2.1
Image

Captura con Harbour 3.2.0 (sin AnsiToOem)
Image

Captura con Harbour 3.2.0 (con AnsiToOem)
Image

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 5:13 pm
by Antonio Linares
Usando AnsiToOem() funciona bien si ?

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 5:41 pm
by hidroxid
Si correcto, usando AnsiToOem funciona bien.

Pero estimo que no debería ser.

Será que se deben usar otras librerias al momento del lincado?

Recuerda que mi Fwh es 12.02

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 5:43 pm
by Antonio Linares
No le veo relación a FWH sino a la versión de Harbour que estabas usando, que era muy antigua

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 5:50 pm
by hidroxid
Ummm

Y no habra forma de especificar el code page al principio del programa para no tener que estar usando la funcion en cada llamada a objetos de Windows que requieran cadenas de caracter?

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 6:04 pm
by Antonio Linares
REQUEST HB_CODEPAGE_ESWIN

...

HB_CDPSELECT( "ESWIN" )

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 6:34 pm
by hidroxid
Funcionó excelente, gracias!

Pregunta: ¿Las versiones mas recientes del FWh ya tienen seleccionado el code page correcto?

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 6:39 pm
by Antonio Linares
> ¿Las versiones mas recientes del FWh ya tienen seleccionado el code page correcto?

No. Cada programador lo ajusta según su pais, preferencias, etc

Harbour funciona así

Re: Problemas con ansi/oem usando harbour 2.1 vs 3.2.0

Posted: Mon Apr 04, 2016 6:53 pm
by hidroxid
Agradecido.