Ver Mensaje Individual
  #3  
Antiguo 01-06-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Cita:
Empezado por Ñuño Martínez
Después de esta información de interés general
Gracias por mantenernos informados

En delphi tienes el tipo WideString para manejar caracteres unicode. Donde cada carácter esta representado por 2 bytes. En su manejo no se diferencia de un string normal y hay toda una serie de funciones (empiezan por Wide) que manejan este tipo de cadenas.

En el momento de pasarla a la función en C tendrás que convertir la cadena a uno de los formatos que admite tu función, por ejemplo UTF-8. Dependiendo de la versión de delphi con la que cuentes, puedes usar la función UTF8Encode que a partir de un WideString te devuelve un string en formato UTF-8. A partir de ese momento lo manejas como un string normal. Es decir:
Código Delphi [-]
PROCEDURE ProcedimientoCadena (Cadena: WIDESTRING);
  BEGIN
    _ProcedimientoCadena_C_ (PCHAR(UTF8Encode(Cadena)));
  END;

PD: Las cadenas en delphi no son tan diferentes a C, internamente una variable string es un puntero a una cadena terminada en carácter nulo, exactamente igual que en C, por eso se puede hacer un typecast de un string a un PChar sin necesidad de añadir el carácter nulo.
Responder Con Cita