Funkcjonalne UI c++

0

Witam, jestem nowy na tym forum(a czytanie regulaminów jest nudne) więc z góry przepraszam jeżeli w złym miejscu zamieściłem temat.

Planuję zrobić aplikacje któa będzie coś robiła i poszukuję jakiegoś UI które spełni moje wymagania:

  • posiada jakiś container na który można rysować z poziomu kodu(najlepiej jak by były funkcje czyszczenia tego containera i rysowania propek/kresek).
  • jest łatwo dostępne z poziomu kodu (z tego powodu odrzucam windows forms).

Z góry dziękuję za pomoc, Kamil.

1

Zobacz Qt, na pewno są jakieś funkcje na to pozwalające.

0

A ja napiszę trochę odważnie. Może C++ Builder? Bez problemu zrobisz to o co Ci chodzi nawet w darmowej wersji.

0

:) W sumie to jeśli chodzi o qt itd. to chciałbym żeby kod ui był bardziej dodatkiem do już i tak rozbudowanego kodu programu niż jego główną częścią. Btw. program czyta w pamięci i zbiera dane itd... i właśnie chciałem w ui zrobić sobie log + jakaś interpretacja danych które w pamięci wyczytać, do tego potrzebuje rysować na ui tak jak np. w javie jest swing gdzie na studiach mieliśmy animowanie kulki w ui, czegoś takiego poszukuję pod c++ :)

3

@Kamil9132 moim zdaniem jeśli sensownie podzielisz kod oddzielając logikę od GUI to będzie dało się to zrobić w większości środowisk.

0

Na chwilę obecną po spróbowaniu kilku gui zostałem jednak przy win forms.

Znalazłem info jak sie maluje w win forms.

Jeśli chodzi o oddzielenie kodu itd... to tutaj mam lekkie schodki, aplikacja tworzy objekt głównej klasy która w konstruktorze tworzy forme, przypisuje do niej wskaźnik i odpala w nowym wątku funkcję która ma robić za updater programu. Mniej więcej to wygląda tak że w głównym wątku odpalona jest forma a w wątku pobocznym funkcja która cośtam ma robić i działać cały czas do zakończenia programu.

W hooku po zamknięciu formy wrzuciłem Application::Exit(); ale nie działa, ktoś ma jakiś pomysł żeby zadziałało?

Edit: Najlepiej jak by się dało zamknąć wszystkie wątki i aplikacje bez wskaźnika na wątek poboczny.
Dodatkowa uwaga: wątek poboczny korzysta ze wskaźnika na formę także zamknięcie jednego wątka skutkuje crashem.

0

Ok poradziłem sobie z problemem z ostatniego posta, zrobiłem repo bo zamierzeniem tego projektu było że będzie opensourcowy. Jak by ktoś był zainteresowany to daje linka: repo projekt będzie kontynuowany na dniach.

0

Poszło trochę update'ów na repo jak by ktoś był zainteresowany(na teraz zrobiona jest podstawa czytania z pamięci i działa już jako tako).

Na teraz zostało mi dokończenie czytania z pamięci oraz interpretacja wyników/przeniesienie ich na mape(skalowanie pozycji) oraz wybór kolorów do odpowiednich typów objektów :)

Przypominam że nie przeczytałem jeszcze regulaminu forum więc przepraszam jeżeli nie można posta pod postem :)

0

w Ultimate++ się da, kiedyś to robiłem :D

0

Kod wygląda w miarę ok. Nie mniej jednak nie wszystko jest idealnie.

Dlaczego offsety zrobiłeś jako enumy? Skoro je dodajesz w innych miejscach to nie powinny to być enumy, a stałe. Np. tutaj to jest bardzo mylące:

void Reader::ReadPlayerXYZ(float &x, float &y, float &z)
{
    DWORD lvl1PTR, lvl2PTR, plrBASE;
    UINT64 guid = GetLocalGUID();
    plrBASE = FindByGUID(guid);

    ReadProcessMemory(hWoW, (LPVOID)(plrBASE + OFF_UNIT_X), &x, sizeof(float), 0);
    ReadProcessMemory(hWoW, (LPVOID)(plrBASE + OFF_UNIT_Y), &y, sizeof(float), 0);
    ReadProcessMemory(hWoW, (LPVOID)(plrBASE + OFF_UNIT_Z), &z, sizeof(float), 0);

}

Dla mnie OFF_UNIT_X wygląda (przez nazwę pisaną wielkimi literami) na jakiś #define

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