Hola a todos...
Tengo una situación bastante extraña que no logro explicarme porque pasa, así que les cuento a ver si ven que puede ser...
Estoy utilizando una DLL compilada en "C", que su unica funcion (sumatoria) tiene 2 parametros de entrada y su salida es la suma de ambos... En delphi creo la funcion:
Código Delphi
[-]function Suma(A,B:integer):integer; stdcall; external 'sumaint.dll' name 'sumatoria';
Lo extraño es que cuando llamo a la funcion de ésta manera:
Código Delphi
[-]x:=Suma(strtoint(edit1.text),strtoint(edit2.text));
showmessage(inttostr(x));
el resultado es correcto, o sea, me devuelve la suma de los valores que hay en los edits...
Pero aqui viene lo extraño: si en vez de hacer el strtoint de los edits para pasarle los parametros a la funcion, directamente pondo dos numeros enteros, o sea:
Código Delphi
[-]x:=Suma(1,2);
showmessageinttostr(x));
salta un error de
acces violation !!! es realmente muy raro...
También probé:
Código Delphi
[-]A:=strtoint(edit1.text);
B:=strtoint(edit2.text);
x:=Suma(A,B);
showmessageinttostr(x));
y da el mismo error... es muy raro...
Alguien sabe que puede ser???
muchas gacias, salu2