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 )WORD; stdcall;
var
rWORD;
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 )WORD; stdcall;
var
rWORD;
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.