Skompilowane pliki zasobów

0

Cześć
Pisze lekkie aplikację dlatego chciałbym aby cały program był jednym plikiem. Bibliotekę SFML jest zawarta w pliku kompilowanym przez statyczność, chciałbym aby kilka obrazów też znajdowało się w tym pliku. Używam visual studio 2022, który kompiluje zasoby do pliku .exe. Nie moge nigdzie znaleźć jak załadować te pliki graficzne, w sfml jest metoda "loadFromMemory" która chyba za to odpowiada ale nic nie moge znaleźć w necie.

2

Pisze lekkie aplikację dlatego chciałbym aby cały program był jednym plikiem.

Trochę non sequitur, ale…

To zależy głównie od linkera, którego używasz. Znalazłem na szybko coś takiego w sieci; nie wiem, czy Ci to pomoże — sam nie używam Visual Studio.

2

Da się do exeka dołączyć dowolne pliki graficzne jako zasoby, potem wczytać za pomocą LoadResource() i zdekodować czym tam masz.

Jest z tym mały problem, ostatnio jak to robiłem Visual Studio z uporem maniaka zamieniało wszystkie obrazki na BMP przy próbie ich otwarcia w zasobach z poziomu IDE.
Trzeba pilnować by raz dodanego np. png już nie dotykać i od czasu do czasu kontrolować czy są to nadal png bo z bmp ci exek bardzo spuchnie.

0
Azarien napisał(a):

Da się do exeka dołączyć dowolne pliki graficzne jako zasoby, potem wczytać za pomocą LoadResource() i zdekodować czym tam masz.

Jest z tym mały problem, ostatnio jak to robiłem Visual Studio z uporem maniaka zamieniało wszystkie obrazki na BMP przy próbie ich otwarcia w zasobach z poziomu IDE.
Trzeba pilnować by raz dodanego np. png już nie dotykać i od czasu do czasu kontrolować czy są to nadal png bo z bmp ci exek bardzo spuchnie.

nie potrafie tego zrobić siedze już 3 dzień xD i już mnie głowa rozbolała, Ludzie pomóżcie.

2

A co zrobiłeś ?
Nie wiesz jak umieścić plik w zasobach?
Pliku nie widac w EXE
NIe wiesz jak wczytac plik z zasobów ?

Koniecznie musi być w zasobach czy alternatywne metody są akceptowalne ?

Widziales ten watek : ?

1
plugan300 napisał(a):

nie potrafie tego zrobić siedze już 3 dzień xD i już mnie głowa rozbolała, Ludzie pomóżcie.

Co znaczy nie potrafisz?

  1. Nie umiesz stworzyć projektu;
  2. Nie umiesz otworzyć edytora;
  3. Nie wiesz gdzie się dodaje resource;
  4. Nie znasz absolutnie C/C++;
  5. Masz jakieś nieudane próby;
0
_13th_Dragon napisał(a):
plugan300 napisał(a):

nie potrafie tego zrobić siedze już 3 dzień xD i już mnie głowa rozbolała, Ludzie pomóżcie.

Co znaczy nie potrafisz?

  1. Nie umiesz stworzyć projektu;
  2. Nie umiesz otworzyć edytora;
  3. Nie wiesz gdzie się dodaje resource;
  4. Nie znasz absolutnie C/C++;
  5. Masz jakieś nieudane próby;

a co ja napisalem? Nie potrafie znalexc w internecie jak zaladowac obrazek z pliku wykonywalnego do sfml

2

niepotrzebnie zawężasz poszukiwania do sfml, to taka sama biblioteka jak tysiące innych to naprawdę nie jest to istotne dla problemu

Sam znalazłeś w dokumentacji

bool Image::loadFromMemory(const void* data, std::size_t size)

czyli już 95% problemy za tobą , teraz tylko musisz uzupełnić parametry (wskażnik i rozmiar)

w fazie przejsciowej sprawdz czy jak wczytasz przykładowy plik do std::vector<uint8> czy wszystko zadziała będziesz miał 97%

Teraz tylko pozostaje jak umieścić w EXE plik i wydłubać wskaźnik

(opcja1) Tutaj byles?
https://learn.microsoft.com/en-us/cpp/windows/working-with-resource-files?view=msvc-170
odpowedzi @_13th_Dragon @Azarien

(opcja2)
Zamien plik na hex https://tomeko.net/online_tools/file_to_hex.php?lang=en i zrób z tego tablice

(opcja 3)
rozwiazania z poprzedniego mojego postu (ale to prawie to samo co 2 tylko troche inaczej)

0
Adamek Adam napisał(a):

niepotrzebnie zawężasz poszukiwania do sfml, to taka sama biblioteka jak tysiące innych to naprawdę nie jest to istotne dla problemu

Sam znalazłeś w dokumentacji

bool Image::loadFromMemory(const void* data, std::size_t size)

czyli już 95% problemy za tobą , teraz tylko musisz uzupełnić parametry (wskażnik i rozmiar)

w fazie przejsciowej sprawdz czy jak wczytasz przykładowy plik do std::vector<uint8> czy wszystko zadziała będziesz miał 97%

Teraz tylko pozostaje jak umieścić w EXE plik i wydłubać wskaźnik

(opcja1) Tutaj byles?
https://learn.microsoft.com/en-us/cpp/windows/working-with-resource-files?view=msvc-170
odpowedzi @_13th_Dragon @Azarien

(opcja2)
Zamien plik na hex https://tomeko.net/online_tools/file_to_hex.php?lang=en i zrób z tego tablice

(opcja 3)
rozwiazania z poprzedniego mojego postu (ale to prawie to samo co 2 tylko troche inaczej)

W końcu coś działa przekonwertowanie bmp na hexe ale troche trwa zanim visual studio to odpala, jesli chodzi o kompilacje to dziala szybko. Jednak będę próbować zrobić to tak zeby był wykorzystywany zasob kompilowany z rc

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