Skocz do zawartości

Tworzenie DLL


Moe

Rekomendowane odpowiedzi

Witam!

 

Mam pytanie co do tego kursu Tymona.

Zacząłem tworzyć DLL'ke, robie dobrze, W DELPHI, wyświetla mi się ten tekst, itd.

 

Ale jak np. w dll umieścić takie coś:

 

"instance_create(cośtam)" tylko właśnie jak to umieścić w dll?

 

Moe

Odnośnik do komentarza
Udostępnij na innych stronach

musisz wtedy przenieść sie z delphi na c++ i użyć GMapi do tego - innego wydajnego wyjścia nie ma

Odnośnik do komentarza
Udostępnij na innych stronach

nie, ale nie wywołasz kodu GML z poziomu dllki napisanej w delphi, zrobisz to jedynie w c++ i tylko z użyciem GMapi, innego wyjścia nie ma.

Dllki generalnei mają inne zastosowanie, mianowicie rozszerzają możliwości programu, a nie wywołują jego funkcje.

Odnośnik do komentarza
Udostępnij na innych stronach

najczęściej wrapuje (opakowuje) się inne liby których GM nie zdoła użyć bezpośrednio, bo wymaga konkretnych typów argumentów jak i zwracanych.

możesz w dllce zrobić kompleksowe obliczenia które w GMie zajęły by kilkanaście jak nie kilkaset razy więcej czasu.

Odnośnik do komentarza
Udostępnij na innych stronach

one już tam są, znaczy funkcje które wywołują te GMowe odpowiedniki

Odnośnik do komentarza
Udostępnij na innych stronach

Snake napisał symbionta - coś co łączy się z grą GMa i można GMem sterować z poziomu dllki

Odnośnik do komentarza
Udostępnij na innych stronach

zgadza się, na prawde wiele może, chociażby przyspieszyć i ukryć wykonywanie kodu GMa, zabezpieczyć przed dekompilacją kodu gry. Ja go stosuje w niemal wszystkich dllkach do GMa bo jedynie z nim mam pełną swobodę manipulacji GMem

Odnośnik do komentarza
Udostępnij na innych stronach

ujme to najprościej jak się da:

 

Z

G.M.A.P.I

W

D.L.L.C.E

Z.R.O.B.I.S.Z

W.S.Z.Y.S.T.K.O

T.O

C.O

W

G.M.I.E

 

prościej sie nie da, serio

Odnośnik do komentarza
Udostępnij na innych stronach

http://code.google.com/p/gmapi/downloads/list

 

i szukaj wersji pod MinGW

Odnośnik do komentarza
Udostępnij na innych stronach

Teraz musisz wskazać w opcjach linkowania odpowiednią bibliotekę statyczną - wszystko zależy od ustawień biblioteki uruchomieniowej w projekcie:

 

gmapi-mt.lib - Multithreaded

gmapi-mt-dll.lib - Multithreaded DLL

gmapi-mt-d.lib - Multithreaded debug

gmapi-mt-d-dll.lib - Multithreaded debug DLL

 

 

w wersji 6.2 którą ściągnąłem z libów jest tylko libgmapi.a :/ Mam coś ściągnąć czy coś?

Odnośnik do komentarza
Udostępnij na innych stronach

bo pod visuala sa *.lib a pod c::b sa *.a

Odnośnik do komentarza
Udostępnij na innych stronach

zostaw to na razie i poucz się używania bibliotek statycznych w c::b a potem do tego wróć

Odnośnik do komentarza
Udostępnij na innych stronach

wiesz ja bym się tym zajął w c::b tylko kompletnie nie potrafię go obsługiwać... :D

Blank-Facepalm.gif

i dla tego mówię: pierw naucz się obsługiwać IDE, potem biblioteki, a na końcu bierz się za konkretną

Odnośnik do komentarza
Udostępnij na innych stronach

ehhh...ale chyba powinno działać w dev c++ nie?
A możesz zwyczajnie ściągnąć visuala? express jest darmowy...

 

 

@Moe:

 

Możesz zrobić taki przekręt, że w dllce będziesz zwracać stringa z kodem, np:

return "instance_create(costam);"

 

A w gm:

 

execute_string( external_call(...) );

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...