Skocz do zawartości


Przesyłanie danych między aplikacją, a wtyczką


Brak odpowiedzi do tego tematu

#1 Jaro88PL

    Nowy na forum

  • Użytkownicy
  • 1 Postów:

Napisano wto, 19 lip 2016 - 20:35

Witam
Od kilku dni uczę się pisania aplikacji która wspiera dodatki (tzn. wtyczki). Umiem już przekazać dane typu TStringList, WideString itp.z pliku DLL do aplikacji ale nie umiem przekazać tych danych z aplikacji do pliku DLL. Żeby np. pobrało tekst z kontrolki Edit umieszczonej w aplikacji i wyświetliło go w label lub edit na formie we wtyczce DLL.
Czy mógłby mi ktoś pomóc i łopatologicznie jak krowie na rowie pokazać jak to zrobić?


Mój kod do pobierania treści z pliku DLL:

Cytat

library Wtyczka;
uses Windows;

procedure PobieranieTresci(var S: WideString); stdcall;
begin
S := 'Jakis tam tekst';
end;

exports
PobieranieTresci;


Plik EXE:

Cytat

type
TPobieranieTresci = procedure(var S: WideString); stdcall;

var
PobieranieTresci: TPobieranieTresci;


procedure TForm1.Button1Click(Sender: TObject);
var
DLL : THandle;
begin
DLL := LoadLibrary('wtyczka.dll');
try
@PobieranieTresci := GetProcAddress(DLL, 'PobieranieTresci');
if @PobieranieTresci=nil then raise Exception.Create('Bład - nie mogę znaleźć proceudry w bibliotece!');
PobieranieTresci(S);
Edit1.Text := S;
finally
FreeLibrary(DLL);
end;
end;


I tu wszystko ładnie działa. Czyli tekst z DLL jest wyświetlany w Edit1 umieszczonym na formie programu. Tylko pytanie jak to wykonać w drugą stronę. Czyli żeby np. treść pola Edit1 umieszczonego na formie była wyświetlana na kontrolce we wtyczce? Bardzo proszę o pomoc i jak wspomniałem wcześniej bardzo bym prosił o jakąś dosadną instrukcję bo walczę z tym od 2 dni i zero postępu. Dziękuję z góry za pomoc.