Uso de los PChar
#1
Escrito 06 mayo 2010 - 01:22
Ya hacía tiempo que no me encontraba por estos lares pero por fin he resuelto algunos problemas en mi vida y me siento un poco dispuesto.
Pues solo quiero pedirle a los masters en Delphi que si no me explican por favor todo sobre los PChar, e incluso como usarlos para llamar dll's que devuelven PChar´s y como usarlos dentro de funciones para programar las dll's.
Sería bueno hacer un apartado o una área donde se expliquen ya sea con tutoriales o manuales cosas tan sencillas pero que a veces no las sabemos, como los punteros, no los sé manejar tampoco, pero hay cosas tan elementales que a veces no sabemos o nos olvidamos de ellas.
De antemano gracias a toda la ayuda recibida y ya saben, yo invito.
#2
Escrito 06 mayo 2010 - 01:47
Saludos camaradas del foro Delphiaccess.
Ya hacía tiempo que no me encontraba por estos lares pero por fin he resuelto algunos problemas en mi vida y me siento un poco dispuesto.
Pues solo quiero pedirle a los masters en Delphi que si no me explican por favor todo sobre los PChar, e incluso como usarlos para llamar dll's que devuelven PChar´s y como usarlos dentro de funciones para programar las dll's.
Sería bueno hacer un apartado o una área donde se expliquen ya sea con tutoriales o manuales cosas tan sencillas pero que a veces no las sabemos, como los punteros, no los sé manejar tampoco, pero hay cosas tan elementales que a veces no sabemos o nos olvidamos de ellas.
De antemano gracias a toda la ayuda recibida y ya saben, yo invito.
Interesante el tema, vamos a ver que podemos hacer y si alguno de los compañeros desea colaborar con el tuto.
Salud OS
#4
Escrito 06 mayo 2010 - 03:20
El tema de los PCHAR no es complejo. Simplemente son punteros a cadenas de caracteres que terminan con un cero o carácter nulo. Ese tipo de cadenas son las que usa el C/C++ y por lo tanto muchas API de S.O. varios.
Para poder usar librerías y APIs que usen ese tipo de cadenas, se debe tener un mecanismo para convertir los String a PCHAR (char* en C). Cuando hacemos esto: PCHAR(cadena) convertimos cadena a un array de caracteres terminados en un nulo. Esto es aceptado por cualquier función que acepte como parámetro ese tipo de cadenas.
Ejemplo: Nótese los diferentes tipod de conversión entre String y PCHAR.
var S1,S2: String; C: PCHAR; begin S1 := 'Hola'; C:= PCHAR(S1); // C apunta a una dirección de memoria que contiene: H,o,l,a,0 S2:= C; S1:= C; end;
Espero que este breve resumen aclare algo a los que no estén familiarizados con este tipo de cadena de caracteres.
Saludos.
#5
Escrito 07 mayo 2010 - 09:02
Uff parecía más difícil de lo que creía.
Gracias