Plug-in

0

Powiedzmy, że napisałem program. Jak do niego zrobić jakiegoś plug-ina i jak wyglądają wtyczki od strony technicznej?

0

poszukaj na stronie....

0

Polecam "Vademecum profesjonalisty" - tam jest to rewelacyjnie opisane (przynajmniej w wersji dla BCB).

0

Mozesz uzyc dll'ow, exe'cow ze zmienionymi nazwami/rozszerzeniami lub napisac wlasny jezyk skryptowy (powodzienia).

0

Wbrew pozorom napisanie prostego języka skryptowego nie jest takie trudne.... Widziałem chyba w Kodach źródłowych ktoś napisał coś takiego.

0

Można wziąć TCL - popostu cudo....

PS. Wspomniałem o tym, bo przez całą noc tłumaczyłem szwabskie komentarze i identyfikatory w skryptach do gry Wiggles... :) Fajna rzecz - 75% kodu źródłowego gry jest w skryptach, które można przerabiać...

0

Wbrew pozorom napisanie prostego języka skryptowego nie jest takie trudne.... Widziałem chyba w Kodach źródłowych ktoś napisał coś takiego.

To zalezy jakie funkcje ma ten plugin spelniac... Ale wydaje mi sie, ze najlepiej uzyc do tego celu dynamicznych DLL'ow.

0

Jakie by miał nie spełniać... Zobacz, język skryptowy mówi programowi BLE, a program po zobaczeniu tego wykonuje 30 pętli, uruchamia dwa wątki i jeszcze nie wiadomo co. Jedną komendą języka skryptowego możesz zrobić wiele.

0

Tak, ale robia sie schody, jak zamiast BLE, bedzie BLE(Parametr1, Parametr2, Parametr1 + Parametr2 etc), do tego jeszcze moze jakies zmienne i operacje na nich...

0

Ja radzę wykorzystać jednak biblioteki DLL. Kod zawarty w nich wykonuje się z reguły szybciej, niż ten interpretowany z języka skryptowego. Poza tym wcale nie tak łatwo napisać swój język skryptowy o duzych mozliwościach. Można wprawdzie wykorzystać jakiś gotowy język, np. Lua, ale nie będzie to działało bardzo szybko, a także stopień skomplikowania (choć może nie trudności) będzie nieporównywalnie większy.

0

Aha, czyli pluginy to po prostu dll z jakby nowszymi funkcjami?
A ktoś mógłby mi podać jakieś namiary, czy coś na języki skryptowe? Jak się takie coś tworzy i.t.p.?

0

Pluginy to najczęściej dynamicznie ładowane biblioteki ze (zwykle) ściśle określonymi eksportowanymi funkcjami, które program wywołuje, czasem dostaje ich wynik (pluginy, które np. importują pliki jakiegoś formatu) lub przekazuje im adresy funkcji zwrotnych, aby biblioteka mogła wywoływać jakieś polecenioa w programie. Mogą to też być funkcje, które nic nie zwracają, a jedynie cos wyświetlają, np. w pluginie do wyświetlania wizualizacji. Pobierają one jakieś dane wejściowe z programu i wyświetlają je w jakimś oknie. Pluginy nie mają jakiejś ściśle określonej struktury, wszystko zależy od ich przeznaczenia i fantazji oraz umiejętności programisty.

0

Polecam "Vademecum profesjonalisty" - tam jest to rewelacyjnie opisane (przynajmniej w wersji dla BCB).

rewelacyjnie to przesada

ja polecam zrodla mirandy

0

A więc tak. Najprościej w stosunku do możliwości można zrobić pluginy w następujący sposób (sam się aktualnie zajmuję zrobieniem systemu pluginów do swojego programu, więc jestem na świeżo):
Tworzysz dynamiczne DLL'e z dwiema procedurkami o stałej konstrukcji i składni parametrów: InitPlugin(Application: TApplication); i ClosePlugin; Obydwie procedurki z stdcall; (sam o tym ostatnio zapomniałem, przez co dwa dni siedziałem nad kodem nie wiedząc, co jest). Procedurka InitPlugin wywoływana jest przy uruchomieniu programu, a ClosePlugin przy jego zakończeniu. Ta pierwsza tworzy wszystko co chcesz, ta następna zwalnia pamięć. Oczywiście możesz dodać na przykład wskaźnik do głównej formy albo coś, dla wygody. Teraz wtyczka może wszystko, program nie ma specjalnie dużo więcej skomplikowanych rzeczy. Trochę na ten temat można znaleźć w poście trochę niżej (http://4programmers.net/Forum/viewtopic.php?id=54116) i w artykule o bibliotekach dynamicznych Adama Boducha (którą przestudiowałem przed zabraniem się za robienie wtyczek u siebie).

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