... 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)