Witam!
Mam problem, który można streścić , jak mi się wydaje, następująco: wywołuję funkcję z zaprzyjaźnionego dlla wysyłając mu między innymi jednego integera. Kolega Dll odbiera tą liczbę, tyle że zawsze widzi ją jako 2010351658 (Google nie wie, co to za liczba, czyli pewnie nic nie znacząca).
Na mój gust albo mam błąd w wywołaniu/definicji funkcji albo po prostu źle ją odczytuje i tak naprawdę wszystko jest dobrze.
Wygląda to tak:
w dllu:
function szyfruj(tekst,szyfr:shortstring; a:integer):shortstring;
begin
MessageDlg(inttostr(a), mtError, [mbOK], 1);
end;
w głównym programie:
a:=length(imemo.Text);
wynik:=szyfruj(tekst, szyfr, a);
MessageDlg uparcie pokazuje 2010351658 dla dowolnej zawartości imemo.
Wiem, że zasadność działania szyfruj() jest wątpliwa, ale to wersja debugująca. Chodzi mi o wartość a. Wiem też, że niefajnie przesyłać stringi ale na razie chcę przy tym zostać. Używam ShareMem.
Tak przy okazji - ShareMem powinienem wrzucić do dlla i gdzie jeszcze? Do uses w źródle projektu czy unitu? Wrzucam tu i tu na wszelki...
Z góry dzięki za odpowiedź.