Ver Mensaje Individual
  #12  
Antiguo 10-08-2012
usuario87 usuario87 is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 10
Reputación: 0
usuario87 Va por buen camino
jeje no pense que mi preguntilla iba a causar tantas respuestas, bueno miren primero el buffer debe estar si o si en nulos porque como ya dije la funcion de la dll solo me devuelve la cadena sin el nulo (una mala imitacion de las cadenas en C xP), segundo el buffer como maximo debe ser de 255 porque me va a devolver nombres y al principio en ese codigo de visual basic especifique "Buffer = String(255,Chr(0)) 'asigna 255 nulos en la variable" , queria hacerlo con cadenas porque me parecia mucho mas facil hacer algo como esto:

Código Delphi [-]
Var
  Buffer: string;
  Posicion: Byte;
begin
  Buffer:=LlenarNulos(255); // equivalente a Buffer = String(255,Chr(0))
  ObtenerNombres(PChar(Buffer));
  Posicion:=Pos(Chr(0),Buffer);
  Buffer:=Copy(Buffer,1,Posicion-1);
  Form1.Caption:='Tamaño de la cadena: '+IntToStr(Posicion-1);
  ShowMessage(Buffer);


usare shortstring y array of char, tambien se me habia ocurrido usar una api para asignar memoria y pasarle esa direccion a la funcion de la dll y luego busco el nulo mediante un puntero a esa direccion.
gracias
Responder Con Cita