Przerabiam program z Delphi na Lazarusa i używam skompilowany w Delphi plik zasobów RES.
Nie wiem jakim cudem wszystko działało dobrze dopóki nie zmieniłem nazwy projektu z projekt1.lpi na pulpit.lpi. Teraz mam błąd EResNotFound, choć próbuję użyć tego samego pliku RES.
Oczywiście zasoby dodane dyrektywą {$R pulpit.res}. Problem w tym, że Lazarus rekompiluje (chyba) zasób (widzę zmianę jego rozmiaru) i generuje błędy braku .
Jak wymusić na kompilatorze nie_kompilowanie_zasobów?
Delphi tego nie robił. Raz stworzony i skompilowany zasób mógł być wykorzystywany przy wielokrotnych kompilacjach projektu, bez zmiany jego zawartości.
Dodano po 37 [minuty]:
Zgłębiłem problem trochę bliżej.
Kompilacja projektu projekt1.lpi tworzy kolejny plik zasobów projekt1.res. Więc kompilacja z opcją {$R projekt1.RES} nadpisuje istniejący plik zasobów jakąś nową wersją, której program nie czyta.
Rozwiązałem problem stosując zupełnie inną nazwę pliku zasobów, który chcę użyć - np. zasoby.res i kompilując projekt z opcją {$R zasoby res} dostaję nowy plik projekt1.res, który program już czyta i nie wywala błędu EResNotFound.
Nie wiem tylko dlaczego tak się dzieje i czy tak powinno być?
Nie wiem jakim cudem wszystko działało dobrze dopóki nie zmieniłem nazwy projektu z projekt1.lpi na pulpit.lpi. Teraz mam błąd EResNotFound, choć próbuję użyć tego samego pliku RES.
Oczywiście zasoby dodane dyrektywą {$R pulpit.res}. Problem w tym, że Lazarus rekompiluje (chyba) zasób (widzę zmianę jego rozmiaru) i generuje błędy braku .
Jak wymusić na kompilatorze nie_kompilowanie_zasobów?
Delphi tego nie robił. Raz stworzony i skompilowany zasób mógł być wykorzystywany przy wielokrotnych kompilacjach projektu, bez zmiany jego zawartości.
Dodano po 37 [minuty]:
Zgłębiłem problem trochę bliżej.
Kompilacja projektu projekt1.lpi tworzy kolejny plik zasobów projekt1.res. Więc kompilacja z opcją {$R projekt1.RES} nadpisuje istniejący plik zasobów jakąś nową wersją, której program nie czyta.
Rozwiązałem problem stosując zupełnie inną nazwę pliku zasobów, który chcę użyć - np. zasoby.res i kompilując projekt z opcją {$R zasoby res} dostaję nowy plik projekt1.res, który program już czyta i nie wywala błędu EResNotFound.
Nie wiem tylko dlaczego tak się dzieje i czy tak powinno być?