Witam,
powiedzcie mi, dlaczego funkcja LOG10 z modułu MATH wywołana z biblioteki DLL zwraca wartość ujemną a ta sama funkcja nie z biblioteki zwraca wartość dodatnią?
np z DLL: LOG10(1000/1.4) = -0.8
a z kodu programu to samo wynosi 0.8 ??
wypadało by jakiś kod podać...
Funkcja Logarytm to tylko przykład - używany w innej funkcji...
uses {... } Math;
procedure TForm1.Button1Click(Sender: TObject);
var
DLL : THandle;
c : double;
pojemnosc : Function(bsr:double;r:double) : double;
Begin
DLL := LoadLibrary('Pojemnosc_c.dll');
@pojemnosc:=GetProcAddress(DLL, 'Pojemnosc');
c:=Pojemnosc(1000,1.45);
ShowMessage(FloatToStrf(c,ffnumber,100,5));
ShowMessage(FloatToStrF(LOG10(1000/1.45) ,ffnumber,100,5);
End;
Kod z DLL:
Function logarytm(bsr:double; r:double) : double; STDCALL;
Begin
result:=LOG10(bsr/r); //na przykład tylko obliczenie samego logarytmu
End;
exports
logarytm;
var
DLL : THandle;
c : double;
pojemnosc : Function(bsr:double;r:double) : double; stdcall;
Ahacózdziała, wybaczcie zabrany czas ale dopiero się uczę ;)
Pozdrawiam