Flinch Napisano Sierpień 2, 2018 Autor Zgłoś Udostępnij Napisano Sierpień 2, 2018 Jak wypakować z zasobów jakieś pliki przy pomocy funkcji? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Sierpień 3, 2018 Zgłoś Udostępnij Napisano Sierpień 3, 2018 Z plików res, czy exe (dll itp)? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Flinch Napisano Sierpień 3, 2018 Autor Zgłoś Udostępnij Napisano Sierpień 3, 2018 Chce napisać instalator, który wypakowywuje swoje zasoby. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Sierpień 4, 2018 Zgłoś Udostępnij Napisano Sierpień 4, 2018 Standardowe zasoby, jak np. bitmapa to pobiera się z funkcji LoadBitmap(hinstance,'nazwabitmapy.bmp'). funkcja zwraca uchwyt bitmapy. Jeżeli zaś chodzi o niestandardowe zasoby to robi się tak: FindResource(nil,'nazwazasobu',typ) jeżeli znajdzie to zwraca uchwyt. I dalej: LoadResource(nil,uchwyt z findresource) lockresource(uchwyt globalny zwrocony z powyższej funkcji) funkcja zwraca wskaźnik do zasobów. Aby znać rozmiar skorzystaj z funkcji: SizeofResource(nil,uchwyt z findresource) Na zwalniasz uchwyty Freeresource Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Flinch Napisano Sierpień 9, 2018 Autor Zgłoś Udostępnij Napisano Sierpień 9, 2018 hr = FindResource (hInstance, MAKEINTRESOURCE (IDI_ICON1), RT_ICON); if( !hr) return -3; Dlaczego funkcja nie zwraca uchwytu zasobu? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Sierpień 9, 2018 Zgłoś Udostępnij Napisano Sierpień 9, 2018 Z ikonami to lepiej stosowac standardowe funkcje (LoadIcon czy LoadIconEx). Bo jak sie domyslam to nie wiesz jak sa zapisywane ikony w zasobach. Aby wyciagnac je z zasobów FindResource musisz najpierw wyciągnąć grupe ikon RT_GROUP_ICON i zniej dowiadujesz sie jak poszczegolne ikony sie nazywaja (ich nazwy to tylko cyfry) - dla danej grupy. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Sierpień 9, 2018 Zgłoś Udostępnij Napisano Sierpień 9, 2018 Właśnie przypadkowo znalazłem w pliku pomocy przykład jak wydłubać z zasobów ikone za pomocą wczesniej omawianych fukcji. Coprawda jest to pokazane jak wydłubac ja z zewnetrznej biblioteki, ale chyba bedziesz wiedzial jak to zmienic. Oto calosc: HICON hIcon1; // icon handle HINSTANCE hExe; // handle to loaded .EXE file HRSRC hResource; // handle for FindResource HRSRC hMem; // handle for LoadResource BYTE *lpResource; // address of resource data int nID; // ID of resource that best fits current screen HDC hdc; // handle of display context // Load the file from which to copy the icon. hExe = LoadLibrary("myapp.exe"); // Find the icon directory whose identifier is 440. hResource = FindResource(hExe, MAKEINTRESOURCE(440), RT_GROUP_ICON); // Load and lock the icon directory. hMem = LoadResource(hExe, hResource); lpResource = LockResource(hMem); // Get the identifier of the icon that is most appropriate // for the video display. nID = LookupIconIdFromDirectoryEx((PBYTE) lpResource, TRUE, CXICON, CYICON, LR_DEFAULTCOLOR); // Find the bits for the nID icon. hResource = FindResource(hExe, MAKEINTRESOURCE(nID), MAKEINTRESOURCE(RT_ICON)); // Load and lock the icon. hMem = LoadResource(hExe, hResource); lpResource = LockResource(hMem); // Create a handle to the icon. hIcon1 = CreateIconFromResourceEx((PBYTE) lpResource, SizeofResource(hExe, hResource), TRUE, 0x00030000, CXICON, CYICON, LR_DEFAULTCOLOR); // Draw the icon in the client area. DrawIcon(hdc, 10, 20, hIcon1); Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.