Ver Mensaje Individual
  #1  
Antiguo 16-08-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Reputación: 21
emeceuy Va por buen camino
Access Violation con DLL

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
__________________
Marcelo C.
Responder Con Cita