Delphi - Modificar valor string de vb6

   
Vista:

Modificar valor string de vb6

Publicado por Jose Luis (5 intervenciones) el 26/11/2013 16:17:43
Necesito cambiar el valor de una variable string de Visual Basic 6 desde una DLL desarrollada en Delphi, es decir el Prototipo de función VB6 que hace la llamada a la función es el siguiente.
1
Public Declare Function LCO  Lib "Project2c.dll" (ByVal Cadena As String) As Integer
Como veis, la variable se pasa por valor y no por referencia, por lo que en un principio creí que era imposible cambiar su valor desde mi DLL, pero según un articulo que leí (http://www.elguille.info/vb/vb_novatos.htm#novato05), en VB , se pasa también la dirección de memoria de la variable.
Agradecería mucho si alguien pudiera hecharme una mano, ya que tengo un proyecto sin finalizar pendiente solo de esto....

Muchas gracias y saludos a todos

J.L.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Modificar valor string de vb6

Publicado por Jose (1 intervención) el 29/11/2013 19:55:21
Aqui esta la solucion:

Funcion Delphi : Function LCO(Cadena:PChar):Integer;stdcall;
begin
StrPCopy( Cadena, ´El valor ha sido mdificado' )
Result := 0;
end;

Es importante en en el codigo VB, inicializar la variable antes de llamar a la funcion, es decir:

DIm Cadena as string, xr as long
Cadena = Space(200) // Inicializamos la cadena con espacios
xr = LCO(Cadena)

Lo he probado y funciona... Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Modificar valor string de vb6

Publicado por xve (9 intervenciones) el 30/11/2013 11:13:38
Gracias por compartirlo Jose!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar