Hola Amigos del Foro,
Actualmente tengo un problema usando un componente ActiveX que esta devolviendo un parámetro por referencia de tipo WideString(Es la definición de la importación del componente).
Al momento de usar la funcion y pasar un parametro de tipo WideString me esta mostrando el error: "Access violations at address 1381O7AO in module *.DLL. Write of address 00000000"
La definición de la función es:
Código Delphi
[-] function ReadInformation(var szCard: WideString; iTimeChip: SYSINT; iTimeMag: SYSINT; iType: SYSINT; const messMag: WideString): SYSINT; safecall;
La definición Exacta según el que ha creado el componente:
HRESULT ReadInformation([in] BSTR* szCard, [in] int iTimeChip, [in] int iTimeMag, [in] int iType, [in] BSTR messMag, [out, retval] int *rc)
Yo estoy haciendo una simple prueba de la función:
Código Delphi
[-]
procedure TForm2.btnConInfClick(Sender: TObject);
var
....
CardInformation : WideString;
begin
try
...
ReadCardResult:= MyCompActX.ReadInformation(CardInformation, 20, 20, 1, 'INGRESE NUM...');
if Trim(CardInformation) <> '' then
ShowMessage(CardInformation);
finally
MyCompActX.Free;
end;
end;
Si algún compañero del foro me puede ayudar, por que se esta generando ese problema o la forma de como debe de pasarse un parámetro por referencia a un ActiveX?
La persona que creo el componente me indico trabajarlo con puntero y que a este tengo que asignarle memoria (memoria dinámica). Si pudieran indicarme como es la definición o un ejemplo de lo que me han indicado.
Muchas Gracias a los que me pudieran compartir alguna solución para probar o es problema del componente ActiveX. según el que desarrollo este componente con un app. en visual basic le trabaja muy bien.