Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2014
Avatar de kotai
kotai kotai is offline
Miembro
 
Registrado: mar 2004
Ubicación: Gandia
Posts: 31
Poder: 0
kotai Va por buen camino
const char* de C a String de Delphi

Hola.

Estoy utilizando SDL2 en DelphiXE5 y tengo un problema en todas las funciones de SDL2 que devuelven una cadena, el valor que leo siempre son letras japonesas. Según la documentación de SDL2 todas las cadenas están codificadas en UTF8. De hecho las funciones SDL2 a las que yo les tengo que pasar cadenas los hago con: PChar(UTF8Encode(cadena)) y funciona perfectamente, pero cuando es SDL2 el que me devuelve la cadena no.

Os pongo un caso concreto: función SDL_GetHint
La documentación dice:
Código:
Syntax
const char* SDL_GetHint(const char* name)

Function Parameters
name : the hint to query;
 
Return Value
Returns the string value of a hint or NULL if the hint isn't set.
Y la implementación de la función en Delphi:
Código Delphi [-]
function SDL_GetHint( const name: PChar): PChar; cdecl; external SDL_LibName;

A la hora de usarla en mis juegos he probado varias formas, pero siempre me devuelve letras japonesas o interrogantes. Os pongo algunas de las llamadas que he hecho, en las 2 primeras me devuelve letras japonesas y en las otras 3 devuelve: ???t
Código Delphi [-]
var
   aux : string;
begin
     aux := SDL_GetHint(PChar(UTF8Encode(SDL_HINT_RENDER_SCALE_QUALITY)));
     aux := PChar(SDL_GetHint(PChar(UTF8Encode(SDL_HINT_RENDER_SCALE_QUALITY))));
     aux := UTF8Decode(SDL_GetHint(PChar(UTF8Encode(SDL_HINT_RENDER_SCALE_QUALITY))));
     aux := PChar(UTF8Decode(SDL_GetHint(PChar(UTF8Encode(SDL_HINT_RENDER_SCALE_QUALITY)))));
     aux := UTF8Decode(PChar(SDL_GetHint(PChar(UTF8Encode(SDL_HINT_RENDER_SCALE_QUALITY)))));
end;

¿ Alguna idea de como recuperar el valor real de la cadena ?
Como digo el pasar cadenas a las funciones de SDL2 con PChar(UTF8Encode(cadena)) funciona perfectamente, está comprobado en todas las funciones SDL2 a las que hay que pasar una cadena. El problema lo tengo cuando es SDL2 el que me devuelve las cadenas.

Gracias.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
char to string? Laurogriffin Varios 4 29-01-2012 22:07:18
Convertir char*, char[], string lmpadron C++ Builder 2 29-10-2010 09:08:45
Uso de Const con parámetros String marcoszorrilla Trucos 0 29-06-2006 22:51:31
(const Value: string) vs (Value: string) eliash OOP 10 14-12-2005 19:10:13
Pasar string a char Sayuri Varios 3 09-08-2005 16:35:29


La franja horaria es GMT +2. Ahora son las 17:47:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi