Klasy w biblotece DLL

0

Witam

Informatyk zadal mi to na wolne, mam mu zdefiniowac najprostsza klase w biblotece DLL i uzyc jej w aplikacji konsolowej

Udalo mi sie stworzuyc DLL z badziewiasta klasa:

library bibl;
uses
SysUtils,
Classes;

{$R *.res}

type TStudent = CLASS
Private
Imie :string;
Public
procedure Wczytaj;
procedure Wyswietl;
end;

{ TStudent }

procedure TStudent.Wczytaj;
begin
write('Podaj imie studenta: '); readln(Imie);
end;

procedure TStudent.Wyswietl;
begin
writeln('Imie studenta to ',Imie);
end;

{
exports
TStudent;
}

begin
end.

end.

Sugerowalem sie Boduchem, ale proba exportowania wyklada sie
Da sie <ort>w ogóle </ort>zrobic cos takiego?
Thx

Pozdro

0

Napisz chociaz czy to dll dla COM czy normalna. Procedura Wczytaj, Wyswietl powinna byc zdefiniowana jako interface. Pamietaj o loadLibrary. Wszystko powinno dzialac

0

dla normalnej aplikacji konsolowej, plik wynikowy .exe

To jak to ma w koncu byc?
Jak daje Interface przed deklaracja procedur to mi wywala blad.
Konstrukcja taka jak w modulach chyba odpada

0

LoL moze jestem n00b ale czy aby nieda sie exportowac tylko procedor i funkcji? o0

0

Jak kolega wyżej. Do dll'ki pisze się własne API, które zależy od kodera jak będzie zorientowane.

0
robie_gre napisał(a)

LoL moze jestem n00b ale czy aby nieda sie exportowac tylko procedor i funkcji? o0

Ja tez jestem noob, a moj informatyk to guru (heh) i twierdzil ze da sie.....
W podanym wyzej przykladzie udalo mi sie zdefiniowac klase, ale za cholere nie wiem jak tego uzyc w innym programie

0
robie_gre napisał(a)

LoL moze jestem n00b ale czy aby nieda sie exportowac tylko procedor i funkcji? o0

Dodatkowo jeszcze można zmienną, ale nie całe klasy. Na potwierdzenie tego daję cytacik z helpa Delphi.

Help Delphi na hasło exports napisał(a)

A routine is exported when it is listed in an exports clause, which has the form

exports entry1, ..., entryn;

where each entry consists of the name of a procedure, function, or variable (which must be declared prior to the exports clause), followed by a parameter list (only if exporting a routine that is overloaded), and an optional name specifier.

0

Aha, dobra, czyli nie ma sobie co sie wysilac ;p

Dzieki - widocznie to ze mi sie udalo zdefiniowac klase w bibliotece, to mozna sie nia poslugiwac wylacznie w obrebie bibiloteki, lecz nici z exportu....

Pozdro

0

Oczywiście, że konstrukcja klasy w bibliotece jest dozwolona i, tak jak piszesz, w ramach biblioteki możesz się nią posługiwać. Natomiast w klasyczny sposób nie możesz wyeksportować o niej informacji.

Piszę 'w klasyczny', bo istnieją różne technologie pozwalające na to, ale jest to zdecydowanie wyższa szkoła jazdy, a i słowo 'klasa' w tym kontekście oznacza coś innego; jest to bardziej udostępnianie obiektu niż samej klasy (chodzi między innymi o COM, o którym wspomniał crowa).

0

da się, jeśli klasa dziedziczy po interfejsie - ale z tego to już bardziej COM (DCOM) i udostępnianie samych obiektów a nie klas

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