[del[delphi/dll] Załadowanie zmiennej DO biblioteki dll

0

Witam, kiedyś pisałem o problemie wysyłania zmiennej z dll'ki dziś chciałbym się dowiedzieć, czy istnieje możliwość podesłania zmiennej do dll'ki by ta mogła z nią coś zrobić. Przykład:

W programie ktoś w Edita wpisuje wartość liczbową, ta zostaje przesłana do dll'ki a w dll'ce jest procedura:
if edit<5 then Result:='mało';
if edit>=5 then Result:='dużo';

i w ten sposób, że jeżeli mi się spodoba to zmieniam dll'kę i się procedura zmienia. Chodzi mi o to, żeby dllka dostała dane i na ich podstawie wygenerowała rezultat.

0

no z tego co napisales to wynika ze potrzebujesz najzwyklejszej w swiecie funkcji z parametrem, upchnietej do dll'ki :|
chyba, ze chcesz wyslac zmienna i na tej zmiennej wykonac jakas opreracje. wtedy przekazujesz do funkcji/procedury wskaznik (adres pamieci) do swojej zmiennej. poczytaj o wskaznikach.
wlasciwie napisales to pytanie tak ze nie wiadomo czego chcesz...

Huherko napisał(a)

[...]czy istnieje możliwość podesłania zmiennej do dll'ki by ta mogła z nią coś zrobić.

brzmi jak bys chcial ta zmienna edytowac w dll'ce....

Huherko napisał(a)

Chodzi mi o to, żeby dllka dostała dane i na ich podstawie wygenerowała rezultat.

a to brzmi zupelnie inaczej.

0

Chcę po prostu w jakiś sposób podesłać jakąś daną - w zamyśle ma być to ciąg znaków do dll'ki i ta żeby za pomocą POS() znalazła w niej jakieś słowo.

No równie dobrze mógłbym zrobić tak, że Exe zapisuje moją daną w pliku dana.txt i podsyła do dllki zwykły "bodziec" taki jak w moim pierwszym pytaniu (patrz link w moim pierwszym poście) i dllka w tym momencie odczytuje plik dane.txt, analizuje ją i wysyła odpowiedź w postaci Resulta.

Nie wiem czy takie coś by zadziałało, ale chodzi mi o taki sposób postępowania tylko że bez tego pliku "dane.txt"

0

o Boże. skasuj to o tym pliku.
ehh... wiesz co to jest parametr funkcji/procedury? jaki problem napisac w dllce funkcje/procedure z parametrem...?
naucz sie podstaw: Biblioteki DLL

0

Nie wiedziałem właśnie nic o tych parametrach, gdzieś na form trafiłem na ten temat, ale nie skojarzyłem tego z moim problemem.

Dobra, doczytam o tych parametrach i jak coś nie będzie grało, to tu wrócę :P na razie, dzięki za pomoc :)

0

dobra, i tak siedze i sie nudze bo jestem chory... :-/
z reszta chyba za szybko wyslalem Ci ten link, tam jest o wskaznikach i calym rekordzie, a Ty potrzebujesz samego stringa (a wlasciwie PChar) przekazac.

w dllce:

library bilbioteka;

uses
  SysUtils,
  dialogs,
  Classes;

{$R *.res}

function funkcja(parametr:PChar) : PChar;
begin
  ShowMessage('to okienko zostalo wyswietlone przez dll`ke:'+#13#10+ parametr);
  Result := 'to co zwrocila funkcja w dll`ce';
end;

exports
  funkcja;

begin

end.

w Twoim programie:

function funkcja(parametr:PChar) : PChar; external 'biblioteka.dll';
implementation
{...}
procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.caption:=funkcja(pchar(edit1.Text));
end;

P.S. dopiero sie uczysz wiec nastepne pytania poponuje zadawac w dziale Newbie.

0

Wielkie dzięki, o to mi chodziło :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1