Biblioteki DLL - import zmiennych

0

Zastanawiam się nad następującym problemem:
piszę duży program i mam zamiar podzielić go na składowe DLL'ki, ale zastanawiam się w jaki sposób i czy warto tworzyć biblioteke DLL, która będzie zawierać funkcje do komunikacji przez porty COMM po specyficznym protokole oraz zdefiniowane przeze mnie struktury danych.Funkcje już są ale istnieje również potrzeba korzystania w programie głównym z rekordów zaimplementowanych w DLLce. Moje pytanie: czy jest możliwe korztystanie z typów danych zdefiniowanych w bibliotece(wydaje mi sie ze to raczej mało sensowne podejście ale utwierdzcie mnie w tym przekonaniu) a jeśli warto to w jaki sposób tego dokonać.
I drugie pytanie: czy można w DLLce zawrzeć TDataModuł i w jaki sposób (jeśli tak) udosępnić dane do programu głónego (TDataModule - nie mam na myśli korzystania z baz danych- ale chce aby wszystkie dane i funkcje były dostępne globalnie)
I 3 pytanie:
Czy biblioteka DLL może wykorzystywać inną bibliotekę DLL a konkretnie jej funkcje.
Dzięki za przeczytanie ^^^ tego, prosze o porady.
ps. Art. P. A.Boducha już czytałem .. :)
Pozdrawiam

0

... oraz zdefiniowane przeze mnie struktury danych.Funkcje już są ale istnieje również potrzeba korzystania w programie głównym z rekordów zaimplementowanych w DLLce. Moje pytanie: czy jest możliwe korztystanie z typów danych zdefiniowanych w bibliotece(wydaje mi sie ze to raczej mało sensowne podejście ale utwierdzcie mnie w tym przekonaniu) a jeśli warto to w jaki sposób tego dokonać.

Oczywiście, że się da jednakże trzeba zdefiniować te struktury (rekordy) w programi ponownie. To mało fachowe ale można trzymać wszystkie struktury w osobnym Unicie tak aby dll'ki i aplikacja mogła z niego kokoRZystaćystać. W ten sposób działa większość funkcji WinAPI.

I 3 pytanie:
Czy biblioteka DLL może wykorzystywać inną bibliotekę DLL a konkretnie jej funkcje.

Tak. Funkcje i procedury deklarujemy tak samo jak w aplikacji. np(Funkcja WinAPI odgrywająca plik wav).

function sndPlaySound(lpszSoundName: String; uFlags: Integer): Integer; stdcall; external 'winmm.dll' name 'sndPlaySoundA';
procedure Graj;
begin
 sndPlaySound('a.wav', 0);
end;
.
.
.
exports
 Graj;

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