Ver Mensaje Individual
  #11  
Antiguo 13-01-2006
chete chete is offline
Registrado
 
Registrado: ene 2006
Ubicación: TUI-Pontevedra
Posts: 8
Reputación: 0
chete Va por buen camino
Thumbs up Parece que he dado con la solución

... y digo parece porque hasta que lo pruebe un poco más no me lo creo.

La forma en la que he conseguido que VBasic "lea" y "escriba" correctamente los números es con PInteger.
Así que
  • PChar, en Delphi, equivale a String en VB
  • PInteger, en Delphi, equivale a Long en VB
Como no necesito, de momento, más que estos datos, como que voy a pasar de seguir volviéndome loco con decimales u otros.
En todo caso gracias por vuestra ayuda y disculpad mi torpeza.

Ejemplo final

procedure SetUrl(direccion: PChar);stdcall;export;
var
strURL:string;
begin
//inicializacion de variable. (no se puede asignar directamente).
strURL:='';
//asignación del valor nuevo
strURL:=direccion;
//creación de la variable con el nuevo valor.
url:=PChar(strURL);
end;

function GetURL():PChar;stdcall;export;
var
url:string;
begin
url:=ThumbPrint;
GetURL:=PChar(url);
end;

function GetLastCode():PInteger;stdcall;export;
begin
GetLastCode:=PInteger( lastCode);
end;


y en vbasic me creo un módulo para las dll.
Public Declare Sub SetUrl Lib "C:\pruebas\delphi\vb\DLLAtidenet.dll" (ByVal direccion As String)
Public Declare Function GetUrl Lib "C:\pruebas\delphi\vb\DLLAtidenet.dll" () As String
Public Declare Function GetLastCode Lib "C:\pruebas\delphi\vb\DLLAtidenet.dll" () As Long


y en el formulario llamo a las funciones.
Dim direccion As String
Dim code As Long
direccion = Text1.Text
SetUrl direccion


code = GetLastCode
Text2.Text = CStr(code)
Responder Con Cita