Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   dll delphi consumida desde Visua lBasic (https://www.clubdelphi.com/foros/showthread.php?t=89387)

ppb 13-11-2015 13:00:32

dll delphi consumida desde Visua lBasic
 
Hola a todos ,

he desarrollado un dll en XE7 que tiene que ser consumida desde Visual Basic , estoy haciendo un prog. de test

y tengo este error desde VB "Información adicional: Intento de leer o escribir en la memoria protegida. A menudo, esto indica que hay otra memoria dañada."
Cuando en las funciones los param. de pasan por valor no hay problema, pero si son punteros salta la excepción.

Código Delphi [-]
  function IS_CardInReader( HayCard : PSmallInt;
                                       PressICContact : PSmallInt;
                                       ICCActivation   : PSmallInt  ):DWORD; stdcall;
  var
    r:DWORD;
  begin
    r:=OK_ACCION;
    HayCard^        :=1;
    PressICContact^ :=1;
    ICCActivation^  :=1;
    result:=r;
  end;
También he probado :
Código Delphi [-]
  function IS_CardInReader( Var HayCard          : SmallInt;
                                       Var PressICContact : SmallInt;
                                       Var ICCActivation   : SmallInt  ):DWORD; stdcall;
  var
    r:DWORD;
  begin
    r:=OK_ACCION;
    HayCard          :=1;
    PressICContact :=1;
    ICCActivation   :=1;
    result:=r;
  end;
Desde VB
Código:

    Declare Function IS_CardInReader Lib "omrv2sb.dll" (ByVal HayCardP As UInt16,
                                                        ByVal PressICContactP As UInt16,
                                                        ByVal ICCActivationP As UInt16) As UInt32


entorno :
Windows 7 (64)
Microsoft Visual Studio Community 2015 / Microsoft Visual Basic 2015
Delphi XE7

Gracias por vuestra ayuda.

ppb 13-11-2015 14:27:22

Me contesto y me doy un capón , estoy perdiendo facultades.

Cambiar "ByVal" por "ByRef" en la definición de VB.

Gracias siempre.


La franja horaria es GMT +2. Ahora son las 16:14:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi