Jak utworzyć plik DLL zasobów? Plik dll będzie miał zestaw plików .png. W pewnym sensie te pliki .png powinny być odsłonięte od biblioteki dll. Moja aplikacja musiałaby polecić tę bibliotekę DLL, aby uzyskać plik .png.Jak utworzyć dll zasobów
Odpowiedz
Dll zasobów jest taki sam, jak każdy inny plik DLL, po prostu ma mało lub nie ma w nim kodu i stosunkowo więcej zasobów.
Microsoft nie posiada predefiniowany typ zasobu dla plików PNG, ale można zdefiniować własne
możliwe dll zasobów Najbardziej minimalna jest tylko skompilowany plik .RC przekazywane do łącznika takiego.
//save this as resources.rc (supply your own .png file)
#define RT_PNG 99
#define ID_DIGG 1
ID_DIGG RT_PNG "image\\digg.png"
następnie wykonać te polecenia w wierszu polecenia.
rc resources.rc
link /dll /noentry /machine:x86 resources.res
To wszystko. pierwsze polecenie kompiluje resource.rc do resources.res drugie polecenie zamienia resource.res na dll.
Powinieneś teraz mieć bibliotekę dll o nazwie resources.dll
, która zawiera pojedynczy plik PNG. W praktyce, oczywiście, będziesz chciał umieścić #defines
w pliku nagłówkowym, który udostępniasz z kodem, który używa biblioteki dll.
Aby użyć biblioteki DLL w C++, Twój kod wyglądałby tak.
#define RT_PNG MAKEINTRESOURCE(99)
#define ID_DIGG MAKEINTRESOURCE(1)
HMODULE hMod = LoadLibraryEx("resources.dll", NULL, LOAD_LIBRARY_AS_DATAFILE);
if (NULL != hMod)
{
HRSRC hRes = FindResource(hMod, RT_PNG, ID_DIGG);
if (NULL != hRes)
{
HGLOBAL hgbl = LoadResource(hMod, hRes)
void * pPng = LockResource(hgbl);
UINT32 cbPng = SizeofResource(hMod, hRes);
// pPng now points to the contents of your your .png file
// and cbPng is its size in bytes
}
// Don't free the library until you are done with pPng
// FreeLibrary(hMod);
}
- 1. Odczytywanie zasobów z pliku DLL
- 2. Utworzyć DLL z MATLAB
- 3. utworzyć plik DLL w C#
- 4. Jak utworzyć plik JAR zawierający pliki DLL?
- 5. Jak utworzyć obszar ASP.NET MVC jako DLL wtyczki?
- 6. Czy można utworzyć listę zasobów w Xaml?
- 7. Jak utworzyć bibliotekę DLL, która będzie używana w C#
- 8. Jak utworzyć .dll utworzone przy widocznym kodzie IKVM?
- 9. Jak utworzyć bibliotekę DLL ActiveX w Visual C++
- 10. Jak utworzyć silną nazwę o nazwie interop dll dla shdocvw.dll
- 11. Jak utworzyć DLL C przy użyciu Visual Studio 2012
- 12. Jak utworzyć biblioteki DLL w programie Matlab i używać tych bibliotek DLL w aplikacjach .Net
- 13. jak utworzyć stronę po stronie serwera przy użyciu zasobów angularjs $?
- 14. Jak utworzyć pliki zasobów ICU do użycia w PHP?
- 15. Menedżer zasobów Azure - Jak zmienić grupę zasobów zasobu?
- 16. Jak wykonać plik * .dll
- 17. Czy można (ponownie) utworzyć plik PDB po utworzeniu biblioteki DLL?
- 18. maven-resources-plugin: 2.6 - Nie można utworzyć katalogu wyjściowego zasobów
- 19. Jak utworzyć raport wielojęzyczny?
- 20. zasobów vs szyny zasobów 3
- 21. Jak zarejestrować DLL DLL napisane w języku C# z Regsvr32?
- 22. Utwórz wątek wewnątrz DLL
- 23. Jak utworzyć zasób PNG?
- 24. Jak wyeksportować klasę C++ jako bibliotekę DLL?
- 25. Jak rozwiązać .NET Dll Hell?
- 26. Jak uzyskać nazwę pliku DLL?
- 27. Jak zabezpieczyć bibliotekę .NET DLL
- 28. Jak programowo uzyskać zależności DLL
- 29. Jak korzystać z zasobów Dialog w Win32?
- 30. Różnica między tradycyjnym DLL DLL i COM
wow ... thanks a lot..this wygląda jak przydatnych informacji :) –
przy użyciu tej techniki, mogę zmienić ikonę my self-stworzony IE przycisk paska narzędzi jest w czasie rzeczywistym? – karikari
@karikari: Nie sądzę. Nie wiem, jak ta technika pomaga przy zmianach w czasie rzeczywistym. Zasoby w DLL są zdefiniowane w czasie połączenia, nie są dynamiczne. –